如何在SQL中不使用子查询单独展示符合条件的总行数
无需子查询统计符合条件的总行数
原SQL与需求
你原本的SQL是按tema分组统计符合条件的数据行数:
SELECT COUNT(TEMA),tema FROM LIBRERIAS WHERE TRIM(TEMA )LIKE 'GEO%IA' AND EJEMPLARES BETWEEN 5 AND 20 GROUP BY tema;
现在需要不使用子查询,单独算出所有满足TRIM(TEMA) LIKE 'GEO%IA'且EJEMPLARES在5到20之间的数据总行数。
可行性及实现方法
完全可以做到,直接去掉GROUP BY tema子句,把COUNT(TEMA)换成COUNT(*)(或者COUNT(1),效果一致)即可:
SELECT COUNT(*) AS total_rows FROM LIBRERIAS WHERE TRIM(TEMA) LIKE 'GEO%IA' AND EJEMPLARES BETWEEN 5 AND 20;
- 说明:
COUNT(*)会直接统计所有符合WHERE条件的行数,不需要分组操作,完全满足你不用子查询的要求。如果是想同时展示分组统计结果和总行数,可借助窗口函数,但如果只是单独获取总行数,上面的语句就足够。
内容的提问来源于stack exchange,提问作者trex
相关产品推荐
相关产品推荐

