SQL 在一行中计算子选择
SQL Subselect calculated in one row
我无法让 SQL select 工作。
我有一个 table - 以下是示例:
|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 |
我尝试了内部连接和外部连接,但我认为这是错误的方法。如果我做一个 subselect 它总是按主要 select.
过滤
不知道如何从这里开始:-)
将很高兴并感谢您的任何建议!
只使用条件聚合:
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
所在的行。如果你想包含这些,你可能需要 <=
或 >=
。
我无法让 SQL select 工作。
我有一个 table - 以下是示例:
|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 |
我尝试了内部连接和外部连接,但我认为这是错误的方法。如果我做一个 subselect 它总是按主要 select.
过滤不知道如何从这里开始:-) 将很高兴并感谢您的任何建议!
只使用条件聚合:
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
所在的行。如果你想包含这些,你可能需要 <=
或 >=
。