180 連續出現的數字

2021-10-01 20:59:39 字數 1387 閱讀 4841

編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。+-

---+

----

-+| id | num |+-

---+

----

-+|1

|1||

2|1|

|3|1

||4|

2||5

|1||

6|2|

|7|2

|+--

--+-

----

+例如,給定上面的 logs 表, 1 是唯一連續出現至少三次的數字。+-

----

----

----

----

+| consecutivenums |+-

----

----

----

----

+|1|

+---

----

----

----

--+# write your mysql query statement below

select distinct a.num consecutivenums from

( select t.num ,

@cnt:

=if(@prev=t.num,@cnt+1,

1) cnt,

@prev:

=t.num

from logs t,

(select @prev:

=null,@cnt:=0

) r) a where a.cnt>=

3語法解釋:

1. if(expr1, expr2, expr3)

//三元表示式

2. @pre:=10

// 變數賦值語法

3. 使用select 語句設定變數,可看做表,在datagrip中直接執行可以顯示為表

pre ==

> 記錄上乙個值, cnt ==

> 記錄次數,

select @pre:

=null, @cnt:=0

4. 如果pre與t.num 相等,則cnt加1, 否則cnt重置為1

@cnt:

=if(@pre=t.num, @cnt+1,

1) cnt

5. 將生成的num與cnt次數的表,作為新的表 a

select t.num ,

@cnt:

=if(@pre=t.num, @cnt+1,

1) cnt,

@pre:

=t.num pre

from logs t,

(select @pre:

=null, @cnt:=0

) b) a

180 連續出現的數字

連續出現的數字 編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。id num 1 1 2 1 3 1 4 2 5 1 6 2 7 2 例如,給定上面的 logs 表,1 是唯一連續出現至少三次的數字。consecutivenums 1 思路1 多表查詢 直接在三個表的例項中查詢,然後把四個條...

180 連續出現的數字

本題考點 本題考察的是連續出現,會有同學忽略 連續 二字 從題目連續3次成績相等,判斷出 成績相等 和 學號連續 這2個條件。考察構建 連續學號成績相等 的思維構建能力 資料庫中as主要作用是起別名,常規來說都可以省略,但是為了增加可讀性,不建議省略。解答 select distinct l1.nu...

180 連續出現的數字

編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。id num 1 1 2 1 3 1 4 2 5 1 6 2 7 2 例如,給定上面的logs表,1是唯一連續出現至少三次的數字。consecutivenums 1 write your mysql query statement below ...