編寫乙個 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 ...