首页 > 解决方案 > 如何在 SQL 中按同一列过滤两次?

问题描述

假设我有一列要汇总的日期、类别和值。我希望按类别对值进行分组并对值求和,以使其满足特定日期集的特定条件,以及另一组日期的另一个条件。

就像是:

 SELECT categories, SUM(values) 
 FROM table 
 group by categories
 having SUM(values) = 0 WHEN dates between w AND x 
 AND having SUM(values) > 10000 WHEN dates between y and z

谢谢!

标签: sqlsql-serverhue

解决方案


我认为你想要条件聚合:

 select categories, sum(values) 
 from table 
 group by categories
 having sum(case when dates between w and x then values else 0 end) = 0 and
        sum(case when dates between y and z then values else 0 end) > 10000 ; 

推荐阅读