使用T-SQL实现带条件的求和计算问题求助
T-SQL 实现带条件的Totale字段计算
假设你的表名为your_table,指定需要单独计算的tipo值为'target_type'(可根据实际需求替换),以下是满足需求的两种实现方案:
方案1:使用子查询计算总KO值
SELECT tipo, ok, ko, CASE -- 指定行:直接取当前行的ok与ko之和 WHEN tipo = 'target_type' THEN ok + ko -- 其余行:所有行的ko总和加上固定值7665 ELSE (SELECT SUM(ko) FROM your_table) + 7665 END AS Totale FROM your_table;
方案2:使用窗口函数(更高效,避免重复扫描表)
SELECT tipo, ok, ko, CASE WHEN tipo = 'target_type' THEN ok + ko ELSE total_ko + 7665 END AS Totale FROM ( -- 先通过窗口函数计算所有行的ko总和 SELECT *, SUM(ko) OVER () AS total_ko FROM your_table ) AS sub_query;
说明
- 若需要指定多个
tipo值,可将WHEN tipo = 'target_type'修改为WHEN tipo IN ('type1', 'type2', ...) - 窗口函数方案仅扫描表一次,数据量较大时性能更优
内容的提问来源于stack exchange,提问作者Elsheikh Hifni
相关产品推荐
相关产品推荐

