题4:
根据下表,编写一个SQL查询,查找所有至少连续出现三次的数字,返回的值可以任意排列。
方法一:窗口函数
本题考察的是连续出现,从题目连续3次数字相等,判断出“数字相等"和"Id连续"这2个条件。考察构建"连续Id数字相等"的思维构建能力
使用的函数:
- 向上窗口函数lead:取出字段名所在的列,向上N行的数据,作为独立的列,代码
lead(字段名,N,默认值) over(partion by …order by …)
- 向下窗口函数lag:取出字段名所在的列,向下N行的数据,作为独立的列,代码
lag(字段名,N,默认值) over(partion by …order by …)
其中,默认值是指,当向上N行或者向下N行值时,如果已经超出了表行和列的范围时,会将这个默认值作为函数的返回值,若没有指定默认值,则返回Null。
select distinct Num as ConsecutiveNums
from