?LeetCode刷題實(shí)戰(zhàn)180:連續(xù)出現(xiàn)的數(shù)字
Write an SQL query to find all numbers that appear at least three times consecutively.
Return the result table in any order.
題意

示例

解題
#對結(jié)果進(jìn)行去重處理
select distinct Num as?ConsecutiveNums
#將Num以及連續(xù)出現(xiàn)的次數(shù)作為一個新表
from?(
??#計(jì)算Num,到當(dāng)前遍歷的位置連續(xù)出現(xiàn)的次數(shù)
??select Num, (
??????case
??????#如果Num == 前一個值,個數(shù)自增
??????when?@prev = Num then?@count := @count + 1
??????#否則計(jì)數(shù)器count為1,并更新prev為當(dāng)前Num的值
??????when?(@prev := Num) is?not?null?then?@count := 1
??????end
??) as?CNT
??from?Logs, (select @prev := null,@count := null) as?t
) as?temp
#篩選出連續(xù)出現(xiàn)次數(shù)超過3的
where temp.CNT >= 3
評論
圖片
表情
