180,連續出現的數字
####三表連線
####這個沒什麼好說的,就有個問題,題目沒有說明id是連續的,唯一的。雖然題目預設是這樣。
select
distinct a.num as
"consecutivenums"
from logs a join logs b
join logs c on a.num = b.num and a.num = c.num and a.id = b.id -
1and a.id = c.id-
2
####使用變數,不依賴id列
####參考了別人的做法,別人是真的強。
####從(1)那開始看,給表新增了兩個列prev,count,都是null,從表第乙個資料開始看,
####(2)id=1那一列,第乙個when ,@prev=1 不成立,因為@prev是空,
####然後第二個when將@prev賦值為1,肯定不空,@count賦值為1
####下一輪id=2那一列,第乙個when ,此時@prev=1=num 成立,因為@count+1就為2,
####id=3 同上,@count+1就為3
####id=4此時@prev=1,而num=2,第乙個when不成立,第二個將@prev := num,複製為2肯定不空。@count賦值為1
####然後選取cnt=3的就做出來了
select
distinct num as consecutivenums
from
(select num,
case
when
@prev
= num then
@count :=
@count+1
when
(@prev := num)
isnot
null
then
@count :=
1end
as cnt ##(2)
from logs,
(select
@prev :=
null
,@count :=
null
)as t ##(1))as
temp
where
temp
.cnt =
3
180 連續出現的數字
連續出現的數字 編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。id num 1 1 2 1 3 1 4 2 5 1 6 2 7 2 例如,給定上面的 logs 表,1 是唯一連續出現至少三次的數字。consecutivenums 1 思路1 多表查詢 直接在三個表的例項中查詢,然後把四個條...
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 bel...
180 連續出現的數字
本題考點 本題考察的是連續出現,會有同學忽略 連續 二字 從題目連續3次成績相等,判斷出 成績相等 和 學號連續 這2個條件。考察構建 連續學號成績相等 的思維構建能力 資料庫中as主要作用是起別名,常規來說都可以省略,但是為了增加可讀性,不建議省略。解答 select distinct l1.nu...