表:logs
編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。
返回的結果表中的資料可以按任意順序排列。
查詢結果格式如下面的例子所示:
解法一:
使用視窗函式的偏差函式完美實現。 可以這樣理解:將num複製兩列num1和num2,然後num1整體向上移動一行,num2整體向上移動兩行,如下 :
所以只要num=num1=num2即可.
select distinct num as consecutivenums from
( select num,lead(num,1)over()as num1,lead(num,2)over()as num2
from logs
) as c
where c.num = c.num1 and c.num1 = c.num2
解法二:
連續出現的意味著相同數字的 id 是連著的,由於這題問的是至少連續出現 3 次,我們使用logs並檢查是否有 3 個連續的相同數字。
select distinct
l1.num as consecutivenums
from
logs l1,
logs l2,
logs l3
where
l1.id = l2.id - 1
and l2.id = l3.id - 1
and l1.num = l2.num
and l2.num = l3.num
連續出現的數字
編寫乙個 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 bel...
力扣 連續出現的數字
表 logs column name type id int num varchar id 是這個表的主鍵。編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。返回的結果表中的資料可以按 任意順序 排列。查詢結果格式如下面的例子所示 logs 表 id num 1 1 2 1 3 1 4 2 5...
180 連續出現的數字
連續出現的數字 編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。id num 1 1 2 1 3 1 4 2 5 1 6 2 7 2 例如,給定上面的 logs 表,1 是唯一連續出現至少三次的數字。consecutivenums 1 思路1 多表查詢 直接在三個表的例項中查詢,然後把四個條...