獲得最大的用戶分數我有一個MySQL表,像這樣的樣本數據:從每小時款項
+---------+---------+--------+---------------------+
| id | user_id | scores | created_at |
+---------+---------+--------+---------------------+
| 1 | 1 | 10 | 2012-12-14 02:40:37 |
| 2 | 1 | 20 | 2012-12-14 02:55:54 |
| 3 | 1 | 10 | 2012-12-14 01:17:21 |
| 4 | 2 | 30 | 2012-12-13 01:54:47 |
| 5 | 2 | 55 | 2012-12-15 00:34:39 |
| 6 | 2 | 10 | 2012-12-14 00:20:21 |
+---------+---------+--------+---------------------+
,我需要查詢它,這樣的分數將每個用戶每小時相加。一小時假定爲created_at
,跳過分鐘和秒(04:00:00至04:59:59等)。因此,像這樣:
+---------+--------+---------------------+
| user_id | scores | created_at |
+---------+--------+---------------------+
| 1 | 30 | 2012-12-14 02:00:00 |
| 1 | 10 | 2012-12-14 01:00:00 |
| 2 | 30 | 2012-12-13 01:00:00 |
| 2 | 55 | 2012-12-15 00:00:00 |
| 2 | 10 | 2012-12-14 00:00:00 |
+---------+--------+---------------------+
在這個樣本數據只有第一個用戶一個小時(2012年12月14日02:00:00)中播放一次以上 - 這樣一個小時內他的成績進行了歸納。
從總結分數我只需要每個用戶的最高分(創建排名)。所以最終,預期的結果應該是:
+---------+---------------------+---------------------+
| user_id | top_scores_per_hour | hour |
+---------+---------------------+---------------------+
| 1 | 30 | 2012-12-14 02:00:00 |
| 2 | 55 | 2012-12-15 00:00:00 |
+---------+---------------------+---------------------+
我有一個想法如何做到的這部分...我可以處理其他數據庫之外,但我真的不知道 - 我怎麼能查詢這個與SQL?
對不起,使用更多數據後我不接受。它總是選擇最新的小時和總分數,而不是選擇總分最高的小時。 – Luigi
@Luigi再次嘗試這個,http://sqlfiddle.com/#!2/f5cd1/28 –
評論是我的需求真正的答案。如果可以的話,我會接受它,謝謝。 – Luigi