如何合并含count(*)的SQL查询?需输出三列统计结果
合并SQL查询实现多列统计展示
要把三个独立的统计查询结果合并为firstname、schoolname、locationname三列展示,有两种简洁的实现方式:
方法一:子查询作为列直接返回
这是最直观的写法,将每个统计查询作为单独的列输出:
SELECT (SELECT COUNT(*) FROM StudentRecord) AS firstname, (SELECT COUNT(*) FROM SchoolRecord) AS schoolname, (SELECT COUNT(*) FROM LocationRecord) AS locationname;
方法二:交叉连接(CROSS JOIN)
通过交叉连接把三个单结果的子查询合并为一行数据:
SELECT s.firstname, sc.schoolname, l.locationname FROM (SELECT COUNT(*) AS firstname FROM StudentRecord) s CROSS JOIN (SELECT COUNT(*) AS schoolname FROM SchoolRecord) sc CROSS JOIN (SELECT COUNT(*) AS locationname FROM LocationRecord) l;
两种写法最终都会返回一行包含三个统计值的结果,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Yasir
相关产品推荐
相关产品推荐

