sql - SQL Subselect 在一行中计算
问题描述
我无法让 SQL 选择工作。
我有一张桌子 - 下面是示例:
|id|name |hits|
|1 |peter | 6 |
|2 |john | 13 |
|3 |max | 12 |
|4 |foo | 8 |
|5 |bar | 4 |
我想计算一个输出中 10 个命中以下的每个条目和超过 10 个命中的每个条目的总和。
如下所示:
|sum-over-10|sum-under-10|
| 25 | 18 |
我尝试了内部联接和外部联接,但我认为这是错误的方法。如果我进行子选择,它总是按主选择过滤。
不知道如何从这里开始 :-) 将很高兴并感谢您的任何建议!
解决方案
只需使用条件聚合:
select sum(case when hits < 10 then hits else 0 end),
sum(case when hits > 10 then hits else 0 end)
from t;
注意:结果不包括hits = 10
. 你可能想要<=
或者>=
如果你想要包括这些。
推荐阅读
- python - 在重定向之前从 Flask 表单中获取多个输入值
- azure - Azure 认知搜索建议的同义词映射
- javascript - 无法用更具体的样式覆盖 CSS 模块类样式
- html - 导出html时,如何在org-export-dispatch中使用htlatex或xhlatex?
- python - 如何从 Flask GET 请求中提取 JSON 列表值?
- image-processing - 如何将 image::ImageBuffer 转换为 image::DynamicImage?
- r - : 数据必须是数据框,或其他可被 fortify() 强制转换的对象,而不是 gg/ggplot 类的 S3 对象
- c# - 从 Activator.CreateInstance() 处理实例
- reactjs - 在 react 和 json.server 中更新对象内的数组
- architecture - 您可以使用转发删除所有依赖项吗?