You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL技术问询:如何筛选1900-2021年每年都存在的国家?

筛选1900-2021年每年都有记录的国家的SQL方案

核心思路

统计每个国家在目标年份范围内的唯一年份记录数,若等于总年份数(2021-1900+1=122),则该国家每年都有记录。

具体实现

方案一:固定年份范围

适合已知年份范围固定的场景,直接硬编码总年数:

SELECT country
FROM owid_energy_data
WHERE year BETWEEN 1900 AND 2021
GROUP BY country
HAVING COUNT(DISTINCT year) = 122;

方案二:动态匹配数据时间范围

结合你已有的最早/最晚年份查询,适配数据范围变动的情况,无需手动修改年份数值:

SELECT country
FROM owid_energy_data
WHERE year BETWEEN (SELECT MIN(year) FROM owid_energy_data) AND (SELECT MAX(year) FROM owid_energy_data)
GROUP BY country
HAVING COUNT(DISTINCT year) = (SELECT MAX(year) - MIN(year) + 1 FROM owid_energy_data);

注意事项

  • 使用COUNT(DISTINCT year)而非COUNT(year),是为了排除同一国家同一年存在多条重复记录的干扰,确保统计的是唯一有效年份数。

内容的提问来源于stack exchange,提问作者Samantha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:10:28