替代UNION的相似查询优化:RES_NUM 5-15批量求和(适配Excel)
高效实现方法
直接用GROUP BY按RES_NUM分组求和即可,只需要执行一次表连接,比重复写10条UNION语句高效得多,代码也更简洁,完全适配Excel的Microsoft Query。
优化后的SQL语句
SELECT RES_NUM, SUM(rd.rd_net_cost) AS total_net_cost FROM hqpm..receiver_d rd INNER JOIN hqpm..re r ON r.rcv_id = rd.rcv_id INNER JOIN hqpm..store_ta st ON st.store_id = r.st_id WHERE RES_NUM BETWEEN 5 AND 15 GROUP BY RES_NUM ORDER BY RES_NUM; -- 可选,按RES_NUM排序让结果更规整
说明
- 这条语句一次性完成所有表连接,再按
RES_NUM分组计算每个取值对应的总和,避免了重复执行相同的连接逻辑,数据量大时性能提升明显。 - 结果包含两列:
RES_NUM(对应5到15的取值)和total_net_cost(对应的求和结果),比原查询的单列结果更清晰,方便在Excel中对应数据。 - 如果确实需要和原查询完全一致的单列结果,可去掉
RES_NUM字段,只保留SUM(rd.rd_net_cost),但保留分组字段实用性更强。
内容的提问来源于stack exchange,提问作者Lightsout
相关产品推荐
相关产品推荐

