从sql表中按日期排序重复值

时间:2018-04-13 06:26:00

标签: mysql sql sql-order-by

我有一个MySQL表,其行包含Ref_Nr列的重复值。所以我想将Point的值与Ref_Nr相加,分别为u_id和r_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 个答案:

答案 0 :(得分:0)

您需要对数据进行分组。您无法将常规列选择与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;