将多行数据合并为一行

时间:2016-09-10 07:19:24

标签: php mysql

我有一个表(MySQL)存储用户的利用率。现在,我想要做的是,获得每个用户每天的总利用率。我可以为每个用户获取数据,但是,我发现很难在一天内合并来自多行的数据。

现在,我得到的数据是:

id       date                        download    upload  
1        2015-10-28 08:05:10         1           5
2        2015-10-28 10:25:15         2           5
3        2015-10-28 11:25:10         3           4
4        2015-10-29 11:25:10         8           5
5        2015-10-29 11:25:10         2           7
6        2015-10-29 11:25:10         1           3
7        2015-10-30 11:25:10         11          10
8        2015-10-30 11:25:10         4           5
9        2015-10-30 11:25:10         5           1
10       2015-10-30 11:25:10         10          1

但我希望它看起来像是:

    id       date                        download    upload  
    1        2015-10-28                  6           14
    4        2015-10-29                  11          15
    7        2015-10-30                  30          17

4 个答案:

答案 0 :(得分:1)

您可以使用以下查询:

SELECT MIN(id) AS id, DATE(`date`) AS 'date', 
       SUM(download) AS download, SUM(upload) AS upload
FROM mytable
GROUP BY DATE(`date`) 

该查询使用DATE函数,以便从date字段中提取日期值。

Demo here

答案 1 :(得分:0)

你可以试试这个 -

select id, date(`date`) `date`, sum(download) `download`, sum(upload) `upload`
from your_table
group by date(`date`)
order by `date`

它将总结所有下载和&按日期上传分组。

答案 2 :(得分:0)

你需要一个简单的SQL查询喜欢这个:

select max(user_id),op_date,sum(download_count) from test group by op_date;

数据: 1 1 09-SEP-16 2
2 1 09-SEP-16 1
5 1 09-SEP-16 3
4 1 10-SEP-16 2
3 1 10-SEP-16 4

过滤数据:

1 09-SEP-16 6
1 10-SEP-16 6

答案 3 :(得分:0)

按命令分组

select id,`date`,sum(download) as 'download',sum(upload) as 'upload' 
from ur_table 
group by date(`date`)