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

SQL报错解决:使用HAVING查询Netflix有至少100部剧集的国家

问题报错原因

报错的核心是HAVING子句仅支持过滤分组后的聚合结果,TYPE字段既没有出现在GROUP BY的分组字段中,也没有被聚合函数包裹,SQL引擎无法识别分组后该字段的取值,因此触发编译错误。

正确改写方案

两种写法均符合「必须使用HAVING子句」的要求:

  • 推荐高性能写法(先过滤非剧集记录再分组,计算效率更高)
SELECT SPLIT_PART(COUNTRY,',',1) AS country, COUNT(*) AS tv_show_count
FROM NETFLIX_TITLES
WHERE TYPE = 'TV Show'
GROUP BY SPLIT_PART(COUNTRY,',',1)
HAVING COUNT(*) >= 100
ORDER BY tv_show_count DESC;

该写法先用WHERE过滤出所有剧集类内容,再按拆分后的首个国家分组(合拍剧默认归属第一个标注国家,该逻辑和你原有写法保持一致),最后通过HAVING过滤出剧集数量≥100的国家。

  • 全表聚合写法(适合需要同时统计其他类型内容指标的场景)
SELECT SPLIT_PART(COUNTRY,',',1) AS country, 
       COUNT(CASE WHEN TYPE = 'TV Show' THEN 1 END) AS tv_show_count
FROM NETFLIX_TITLES
GROUP BY SPLIT_PART(COUNTRY,',',1)
HAVING COUNT(CASE WHEN TYPE = 'TV Show' THEN 1 END) >= 100
ORDER BY tv_show_count DESC;

该写法通过条件聚合直接在计数时仅统计剧集内容,所有过滤逻辑都可通过HAVING实现,无需提前过滤数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:45:05