SQL Server统计剧集数时COUNT嵌套子查询语法报错如何解决
代码错误原因
- 语法层面:
COUNT()聚合函数的入参仅支持字段名、常量、合法表达式,不允许直接嵌套独立的SELECT子查询,这是触发语法报错的直接原因。 - 逻辑层面:你的写法外层已经查询了
tblEpisode表,内层又再次全表扫描过滤符合条件的标题,逻辑重复冗余,就算语法允许执行也会返回错误的统计结果。
符合要求的CTE实现代码
如果你要统计标题包含on或者ol的剧集数量,用CTE的写法如下:
WITH qualified_episodes AS ( SELECT Title FROM tblEpisode WHERE Title LIKE '%on%' OR Title LIKE '%ol%' ) SELECT COUNT(*) AS episode_count FROM qualified_episodes;
如果不需要对过滤后的数据集做额外处理,也可以不用CTE,直接简化写法:
SELECT COUNT(*) AS episode_count FROM tblEpisode WHERE Title LIKE '%on%' OR Title LIKE '%ol%';
补充说明:如果你需要统计的是同时包含on和ol的剧集,将WHERE条件中的
OR改为AND即可。
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

