小编bar*_*ard的帖子

SQL SELECT 3 个具有相同值的连续记录

我想从“参与”表(名称,年份)中选择具有相同值的 3 个连续(按年份)记录:

Name    Year
-------------
Carol   1999
Carol   2000
Carol   2001
Carol   2002
Faith   1996
John    2001
John    2002
John    2003
John    2009
Lyla    1994
Lyla    1996
Lyla    1997
Run Code Online (Sandbox Code Playgroud)

这是我的初始代码:

SELECT DISTINCT p1.name, p1.year
FROM participatition p1,
     participatition p2
WHERE (p1.year = p2.year + 1 OR p1.year = p2.year - 1) AND p1.name = p2.name
ORDER BY p1.name, p1.year
Run Code Online (Sandbox Code Playgroud)

它返回所有连续记录,但我只想要满足 3 个连续条件的记录,即不是 Lyla:

Name    Year
-------------
Carol   1999
Carol   2000
Carol   2001
Carol   2002
John    2001
John    2002
John …
Run Code Online (Sandbox Code Playgroud)

mysql sql window-functions

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×1

sql ×1

window-functions ×1