如何将两条同表分组SQL查询合并为单条并发执行查询
合并DIS表分组统计查询的解决方案
没问题,咱们可以用条件聚合的方式把这两个查询合并成一条,这样就能在同一个结果集中同时展示FLG为"P"和"G"的统计数据,而且是单条可并发执行的SQL语句。
最终SQL语句
SELECT (SSTA * 2) AS P_gst, SUM(CASE WHEN FLG = 'P' THEN SSTAAMO ELSE 0 END) AS P_gstamo, (SSTA * 2) AS G_gst, SUM(CASE WHEN FLG = 'G' THEN SSTAAMO ELSE 0 END) AS G_gstamo FROM DIS WHERE FLG IN ('P', 'G') GROUP BY SSTA
逻辑解释
- 过滤数据:
WHERE FLG IN ('P', 'G')先筛选出我们需要的两类记录,避免处理无关数据,提升查询效率。 - 条件聚合:通过
CASE WHEN在SUM函数里做判断,只累加对应FLG值的SSTAAMO,这样就能分别得到FLG为"P"和"G"的统计总和。 - 统一分组:保持原查询的
GROUP BY SSTA逻辑,确保每个SSTA分组的统计结果在同一行展示,(SSTA*2)作为两类统计的gst值,因为同一分组下该计算值是一致的。
这个查询执行后,结果集的列会对应你期望的格式:P_gst、P_gstamo、G_gst、G_gstamo,同时展示两类统计结果。
内容的提问来源于stack exchange,提问作者jainpiyush484
相关产品推荐
相关产品推荐

