如何用嵌套SQL实现类For循环的关联统计查询?
实现批量统计item对应记录数的SQL方案
不需要用类循环的方式执行多次查询,直接通过SQL关联查询+聚合函数就能一次性得到所有唯一item的对应计数,效率远高于循环执行单条查询。
推荐SQL语句
SELECT t.item, COUNT(tn.keyword) AS count FROM ( SELECT DISTINCT item FROM taxonomy ) t LEFT JOIN table_name tn ON t.item = tn.keyword GROUP BY t.item ORDER BY t.item;
语句说明
- 子查询
(SELECT DISTINCT item FROM taxonomy)先获取taxonomy表中所有唯一的item - 使用
LEFT JOIN确保即使某个item在table_name中没有匹配的keyword,也会被保留并显示计数为0 COUNT(tn.keyword)统计匹配的记录数(用tn.keyword而非*,避免把NULL值计入)GROUP BY t.item按item分组,得到每个item的对应计数
输出结果示例
item, count car, 1 house, 2 dog, 3 book, 0
内容的提问来源于stack exchange,提问作者DBA_player
相关产品推荐
相关产品推荐

