这个问题在这里已经有了答案:
如何对mysql表中的重复值求和(1个答案)
两年前关门了。
我有一个mysql表,其中的行包含ref\u nr列的重复值。所以我想对ref\u nr,to u\u id和r\u date列的点的值求和。
id u_id r_date Points Ref_Nr
1 1 2018-04-11 1 3
2 1 2018-04-11 2 3
3 2 2018-04-11 3 4
4 2 2018-04-11 4 4
5 3 2018-04-11 6 2
6 3 2018-04-11 6 2
7 1 2018-04-10 3 3
8 1 2018-04-10 5 3
9 1 2018-04-10 2 4
10 1 2018-04-10 2 4
11 2 2018-04-10 3 3
12 2 2018-04-10 5 3
13 3 2018-04-10 2 4
14 3 2018-04-10 2 4
下面是我的sql查询,我试过了,但是没有得到正确的输出
SELECT u_id, Ref_Nr ,r_date, SUM(Points) AS Points
FROM my_table ORDER BY r_date, Ref_nr,u_id;
这是预期的输出,请帮我解决这个问题
u_id r_date Points Ref_Nr
1 2018-04-11 3 3
2 2018-04-11 7 4
3 2018-04-11 12 2
1 2018-04-10 8 3
1 2018-04-10 4 4
2 2018-04-10 8 3
3 2018-04-10 4 4
1条答案
按热度按时间i86rm4rw1#
你需要把这些数据分组。不能将普通列选择与聚合函数混合,如
sum()
```SELECT r_date, Ref_nr, u_id,
SUM(Points) AS PointSum
FROM my_table
GROUP BY r_date, Ref_nr, u_id
ORDER BY r_date, Ref_nr, u_id;