LeetCode--SQL 查詢:查找所有至少連續出現三次的數字。


編寫一個 SQL 查詢,查找所有至少連續出現三次的數字。

+----+-----+
| Id | Num |
+----+-----+
| 1  |  1  |
| 2  |  1  |
| 3  |  1  |
| 4  |  2  |
| 5  |  1  |
| 6  |  2  |
| 7  |  2  |
+----+-----+

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

+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+
select distinct Num as ConsecutiveNums
from (
  select Num, 
  case 
    when @prev = Num then @count := @count + 1
    when (@prev := Num) is not null then @count := 1
  end as CNT
  from Logs, (select @prev := null,@count := null) as t
) as temp
where temp.CNT >= 3

# SQL查詢先看from,上邊form表,還有初始化了pre、count為null,分別記錄上一個數字已經連續出現的次數。
# 然后調用if()函數,如果pre和當前行數字相同,count加1極為連續出現的次數;
# 如果不同,意味着重新開始一個數字,count重新從1開始。
# 注意:pre初始值最好不要賦值為一個數字,因為不確定賦值的數字是否會出現在測試表中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM