我有一個測驗結果表。用戶可以反覆重複每個類別 - 我需要每個類別的最高分數和相應的時間戳。MySQL/PHP:返回包含MAX值的行值
所以我非常接近,但時間戳字段正在殺死我。如果我可以爲每個類別取第一行,那麼這個數據就會被分類, ... M完成)
catid score timestamp
5 100% 2012-03-22 19:26:41
6 88.89% 2012-06-12 15:20:41
6 77.78% 2012-06-12 15:17:58
7 100% 2012-06-12 16:08:35
7 100% 2012-06-12 16:03:35
7 53.33% 2012-06-12 15:59:44
8 88.89% 2012-06-12 16:13:00
9 83.33% 2012-06-12 16:22:19
10 100% 2012-06-12 17:55:50
10 76.47% 2012-06-12 17:51:54
11 100% 2012-06-12 18:07:12
11 66.67% 2012-06-12 18:05:35
這就是我需要:
catid score timestamp
5 100% 2012-03-22 19:26:41
6 88.89% 2012-06-12 15:20:41
7 100% 2012-06-12 16:08:35
8 88.89% 2012-06-12 16:13:00
9 83.33% 2012-06-12 16:22:19
10 100% 2012-06-12 17:55:50
11 100% 2012-06-12 18:07:12
這裏的MySQL的我使用的是:
SELECT catid
, MAX(0 + score)
, `timestamp`
FROM `results`
WHERE userid = 100
GROUP BY catid
ORDER BY catid ASC
, (0 + score) DESC
, timestamp DESC
;
而且它產生的表:
5 100 2012-03-22 19:26:41
6 88.89 2012-06-12 15:17:58
7 100 2012-06-12 15:59:44
8 88.89 2012-06-12 16:13:00
9 83.33 2012-06-12 16:22:19
10 100 2012-06-12 17:51:54
11 100 2012-06-12 18:05:35
這麼近 - 但時間戳不與最高值相關聯的一個。怎麼回事,我該如何解決?
謝謝!
感謝您的鏈接 - 我實際上在發佈前最近幾個小時閱讀了大約30-40個主題。看看我是否可以深入瞭解該鏈接,更多的鏈接內的鏈接有一點更有用,雖然評論指出不理想。 – Gisto 2012-07-12 23:25:11
除非系統徹底廢除,否則他們不能。我只想要一個值。理想情況下給我最大(0 +分數),然後給我最近的時間戳。 [是,最近] – Gisto 2012-07-12 23:30:04
您尚未指定如果用戶有兩個相同(和最大)的分數但具有不同的時間戳會發生什麼情況。你想在這種情況下最近? (對不起,我之前的評論是錯誤的 - 我刪除了它,這個評論就是我的意思) – 2012-07-12 23:34:19