クイズの結果表があります。ユーザーはカテゴリごとに何度でも挑戦できます。各カテゴリの最高スコアと対応するタイムスタンプが必要です。
だから私は本当に近いですが、タイムスタンプフィールドが私を殺しています.
ここに 1 つのユーザー データがあります: (「スコア」は %s を含む varchar です。これが私が渡されたものです。また、カテゴリ、次に最高スコア、次にタイムスタンプで並べ替えられています。各カテゴリの最初の行を取得できれば完了です。)
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
とても近いですが、タイムスタンプは最高値に関連付けられたものではありません。何が起こっていて、どうすれば修正できますか?
ありがとう!