按时间和用户对SQL行进行分组

时间:2016-02-25 13:26:55

标签: mysql sql group-by

我目前在循环此查询时遇到问题...

SELECT ROUND(UNIX_TIMESTAMP(tdate) DIV 60) AS time, tid, date, tuser, SUM(tvalue) 
FROM transaction
WHERE tmerchant = '$fbid' 
GROUP BY tuser, EXTRACT(DAY_HOUR FROM tdate)
ORDER BY tid DESC
LIMIT 40

问题在于这个MySQL表:

10.20 AM - JOHN 10 
10.15 AM - GEORGE 10 
10.10 AM - GEORGE 10 
10.00 AM - JOHN 10 

它将列出:

10.10 AM - GEORGE 20 
10.00 AM - JOHN 20 

它应该是另一种方式,最后一行计数:

10.20 AM - JOHN 20 
10.15 AM - GEORGE 20 

我之所以这样做,是因为它按行整小时对行进行分组,并根据时间戳将其合并到第一行而不是最后一行。如果我将DAY_HOUR改为DAY MINUTE,理论上会解决问题,但我想要有更长的时间。

有没有人知道一个简单的解决方案如何按行分组行?

谢谢!

0 个答案:

没有答案