Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何按天使用子查询合并组_Mysql - Fatal编程技术网

Mysql 如何按天使用子查询合并组

Mysql 如何按天使用子查询合并组,mysql,Mysql,这是我的桌子: 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

这是我的桌子:

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显示。 我尝试了按天分组(日期),如:

但是它每天把所有的钱加起来,而不是按用户id


谢谢。

如果您想要每个用户id的结果行,您应该按它分组:

SELECT   `user_id`, `day`, SUM(money)
FROM     `trans`
GROUP BY `user_id`, `day`

如果希望每个用户id有一个结果行,则应按其分组:

SELECT   `user_id`, `day`, SUM(money)
FROM     `trans`
GROUP BY `user_id`, `day`

您可以按多个列进行分组:

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)

您可以按多个列进行分组:

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)