我目前的查询如下:
select id, quantity, c, d
from table1;
这将给我示例数据如下:
id | quantity | c | d
---------------------
1 | 1 | x | y
1 | 3 | x | y
2 | 1 | x | y
2 | 1 | x | y
但是我想按ID分组,得到数量总和如下:
id | quantity | c | d
---------------------
1 | 4 | x | y
2 | 2 | x | y
我尝试修改我的第一个查询,在ID上包含一个group by和数量的总和:
select id, sum(quantity), c, d
from table1
group by id;
但是我收到错误,因为其他2列不是group by子句的一部分。我怎么能包括它们?
答案 0 :(得分:2)
简单地将它们添加到group by子句中:
select id, sum(quantity), c, d from table1 group by id, c, d;
答案 1 :(得分:1)
使用OVER子句在这里有意义:
select id, SUM(quantity) OVER (PARTITION BY id), c, d
from table1
不要忘记获得明显的结果。 如果你有多个c,d的组合,你需要明确说明你要选择哪一个。