mysql 力扣,180,連續出現的數字

2021-10-07 06:11:30 字數 1283 閱讀 1628

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...