sql - 如何在 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
谢谢!
解决方案
我认为你想要条件聚合:
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 ;
推荐阅读
- php - 插入后的 PHP Symfony 问题(如果立即访问)
- c++ - 运行 SYCL/DPC++ 代码时出现意外/错误结果
- java - 何时在 GET 请求中使用 @ModelAttribute
- reactjs - 如何在反应中为多页应用程序创建路由
- angular - 找不到角度日期管道
- python - 列 \"lft\" 中的空值违反非空约束
- php - 从 PHP 接收 POST 变量的问题
- discord - Discord.js v12.5.3 有没有办法在交互中添加角色?
- python - 为什么 10 倍交叉验证的准确度得分比使用 sklearn 的 90-10 train_test_split 最差?
- sql - 用于计算从电子邮件打开和电子邮件退回发送的电子邮件计数的 Sql 查询