gpt4 book ai didi

SQL 连续出现一个范围内的条目

转载 作者:行者123 更新时间:2023-11-29 14:16:37 26 4
gpt4 key购买 nike

我正在尝试编写一个查询,我需要在其中获取 X 年到 Y 年之间所有出现的数据,其中数据必须出现在每年 (X+1,X+2) 中。例如 X 年到 Y 年之间的连续年份。

目前我能想到的唯一解决方案是使用 X INNER JOIN year(X+1) until Y 出现的 select 语句,但如果 Y-X 很大,则不太可行。

在 SQL 中是否有更优雅的方法来执行此操作?我目前正在使用 PostgreSQL

谢谢!

编辑:

示例查询:查找从 1992 年到 1995 年每年出版的所有杂志,因此我的预期输出应该只有 A 或者如果 1995 到 1997,它应该只有 B

------------------------------
| Magazine | Year_of_publish |
------------------------------
| A | 1992 |
------------------------------
| B | 1993 |
------------------------------
| A | 1993 |
------------------------------
| A | 1994 |
------------------------------
| A | 1995 |
------------------------------
| B | 1995 |
------------------------------
| B | 1996 |
------------------------------
| B | 1997 |
------------------------------

最佳答案

select Magazine 
from t
where Year_of_publish between 1992 and 1995
group by Magazine
having count(distinct Year_of_publish ) = 1995-1992+1

关于SQL 连续出现一个范围内的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com