連續出現的數字

2022-08-29 01:57:13 字數 1373 閱讀 9583

編寫乙個 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 below

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

;視窗函式:lead()

lead函式在impala中可以配合over使用,lead函式有三個引數

lead(property,num,default)
第乙個引數「property」標識想查詢的列,「num」標識相對於當前行的第num行,第三個引數是預設值。

舉例:執行

select id,lead(id,1,999) over(order by id) as next_id

觀察結果

可見實現了我們獲取當前 id 下乙個id的需求

所以本題的視窗函式寫法:

# write your mysql query statement below

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

連續出現的數字

表 logs 編寫乙個 sql 查詢,查詢所有至少連續出現三次的數字。返回的結果表中的資料可以按任意順序排列。查詢結果格式如下面的例子所示 解法一 使用視窗函式的偏差函式完美實現。可以這樣理解 將num複製兩列num1和num2,然後num1整體向上移動一行,num2整體向上移動兩行,如下 所以只要...

力扣 連續出現的數字

表 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 多表查詢 直接在三個表的例項中查詢,然後把四個條...