这是我的表trans:
id // user_id // money // date
1 1001 20 2015-11-1
2 1001 50 2015-11-1
3 1001 50 2015-11-2
4 1001 50 2015-11-3
5 1002 10 2015-11-3
6 1002 20 2015-11-1
7 1002 70 2015-11-1
8 1003 80 2015-11-2
9 1003 10 2015-11-3
10 1003 20 2015-11-3
我想输出如下:
id // user_id // date
1 1001 2015-11-1
2 1001 2015-11-2
3 1001 2015-11-3
4 1002 2015-11-1
5 1002 2015-11-3
6 1003 2015-11-2
7 1003 2015-11-3
这意味着按照每个ID每天,每种类型和显示来汇总金钱组。 我尝试了GROUP BY DAY(日期),如:
SELECT SUM(a.money), a.user_id FROM trans a GROUP BY DAY(date);
但它每天都汇总所有钱,而不是user_id。
谢谢。
答案 0 :(得分:0)
如果您想要每个用户ID的结果行,则应按其分组:
SELECT `user_id`, `day`, SUM(money)
FROM `trans`
GROUP BY `user_id`, `day`
答案 1 :(得分:0)
您可以按多列进行分组:
mysql> SELECT user_id, SUM(money), `date` FROM trans a GROUP BY user_id, date;
+---------+------------+------------+
| user_id | SUM(money) | date |
+---------+------------+------------+
| 1001 | 70 | 2015-11-01 |
| 1001 | 50 | 2015-11-02 |
| 1001 | 50 | 2015-11-03 |
| 1002 | 90 | 2015-11-01 |
| 1002 | 10 | 2015-11-03 |
| 1003 | 80 | 2015-11-02 |
| 1003 | 30 | 2015-11-03 |
+---------+------------+------------+
7 rows in set (0.00 sec)