sql - sql 嵌套“sum(case when) or”选择查询
问题描述
我有一个选择查询,我试图根据多个条件对一个值求和,按维度分组。输出将是大于 30、90 或 365 天的时间总和,基于类别,按类别分组。我无法破解此语法,希望您能提供帮助!
这个概念看起来像这样:
select
CATEGORY,
sum (case when
(CATEGORY = '1' and TIME >30) then sum (TIME - 30) or
(CATEGORY = '2' and TIME >90) then sum (TIME - 90) or
(CATEGORY = '3' and TIME >365) then sum (TIME - 365) else 0 end) as output
from database.table
group by CATEGORY
提前致谢!
解决方案
我怀疑你想要的语法是:
select CATEGORY,
sum(case when CATEGORY = '1' and TIME > 30 then TIME - 30
when CATEGORY = '2' and TIME > 90 then TIME - 90
when CATEGORY = '3' and TIME > 365 then TIME - 365
else 0
end) as output
from database.table
group by CATEGORY
推荐阅读
- ios - 使用代码快速堆栈视图隐藏和显示不起作用
- sql-server - 如果您想要一个或另一个并且它们不相关,是否可以在同一个查询中同时使用 Where 和 Have ?
- javascript - 将元素的旋转重置回原始状态(rotatable.js + jquery UI)?
- python - 问题在 Raspberry Pi 上获取 PHP 脚本以执行转动电机的 Python 脚本
- java - 如何从 Android Studio 中的 Webview 加载的 Url 中删除段落标签?
- python - Python 3.8 - BeautifulSoup 4 - unwrap() 不会删除所有标签
- android - Circular Reveal 动画 onTouch Android
- php - PHP根据货币收入和结果SQL计算总现金
- git - 在由 git hooks 修改的文件上使用 skip-worktree?
- excel - “对象'范围'的方法'值'失败”错误的问题