SELECT
COUNT(t1.tid) AS count,
u.user_name,
SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(t1.endtime,t1.endtime)))/COUNT(t1.endtime)) AS `avg`,
MAX(TIMEDIFF(t1.endtime,t1.starttime)) AS `max`,
MIN(TIMEDIFF(t1.endtime,t1.starttime)) AS `min`,
CONCAT(
IF(t1.starttime>=(NOW() - INTERVAL 15 MINUTE), '15', ''),
IF(t1.starttime>=(NOW() - INTERVAL 30 MINUTE), '30', ''),
IF(t1.starttime>=(NOW() - INTERVAL 1 HOUR), 'H', ''),
IF(t1.starttime>=(NOW() - INTERVAL 1 DAY), 'D', ''),
IF(t1.starttime>=DATE_FORMAT(SUBDATE(NOW(), INTERVAL WEEKDAY(NOW()) DAY), '%Y-%m-%d'), 'W', ''),
IF(t1.starttime>=CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') AS DATE), 'M', '')
) AS period,
t1.starttime
FROM table1 t1
LEFT OUTER JOIN `user` u ON u.id = t1.user_id
WHERE t1.starttime >= CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') AS DATE)
GROUP BY user_name, period
以上是我曾經做過一個簡單的查詢得到的數據。我的意圖是獲得各種時間表的結果。即獲得數,最小,爲去年15分鐘,1小時,1天,1周,1個月等MySQL查詢到從不同時間段
所以,我要的是結果是這樣的最大值等:
+--------------+--------------+-----------------+--------------+-----------------+
| period | count | user | min | max |
+--------------+--------------+-----------------+--------------+-----------------+
| 15mins | 12 | test_user1 | 00:00:45 | 00:01:45 |
| 15mins | 12 | test_user2 | 00:00:45 | 00:01:45 |
| 15mins | 12 | test_user3 | 00:00:45 | 00:01:45 |
| 15mins | 12 | test_user4 | 00:00:45 | 00:01:45 |
| 15mins | 12 | test_user5 | 00:00:45 | 00:01:45 |
| 30mins | 15 | test_user1 | 00:01:45 | 00:11:45 |
| 30mins | 15 | test_user2 | 00:01:45 | 00:11:45 |
| 30mins | 16 | test_user3 | 00:04:45 | 00:11:45 |
| 30mins | 18 | test_user4 | 00:09:45 | 00:11:45 |
| 30mins | 19 | test_user10 | 00:07:45 | 00:11:45 |
| 30mins | 14 | test_user11 | 00:04:45 | 00:11:45 |
| 30mins | 15 | test_user12 | 00:00:45 | 00:11:45 |
| 1day | 100 | test_user1 | 01:00:45 | 01:11:45 |
+--------------+--------------+-----------------+--------------+-----------------+
T1。開始時間是日期時間。我們根據當前的服務器時間獲得結果。
是什麼你現在得到了嗎? –