私は以下のようなテーブル構造を持っています。各行は1つのゲームであり、各人は毎月多くの時間を再生することができます。MySQL - get sum()グループのmax()グループ
id | person | score | date | ------------------------------------ 1 | 32 | 444 | 2011-05 | 2 | 65 | 528 | 2011-05 | 3 | 77 | 455 | 2011-05 | 4 | 32 | 266 | 2011-06 | 5 | 77 | 100 | 2011-06 | 6 | 77 | 457 | 2011-06 | 7 | 77 | 457 | 2011-06 | 8 | 65 | 999 | 2011-07 | 9 | 32 | 222 | 2011-07 |
私は毎月最高の得点を得たいと思っています。上記のSの結果は次のようになります。
person | SUM(ofbestofeachmonth) --------------------------------- 32 | 932 65 | 1527 77 | 912
私は私が年の四半期ごとの最終出力に必要なので、今、userin月または一部の範囲
SELECT person, date, MAX(score) FROM tabgames WHERE MONTH(date) = 6 GROUP BY person HAVING (score>0)
あたりの自己ベストスコアを取得する方法を知っています私は毎月ベストをフェッチしていますが、MySQLの外では追加しています。
今、私はグループワイズmaxについて読んでいますが、それでもなお良い結果を得ようとしています。すべてのヘルプ
私はこのように考えましたが、このサブクエリは、各月の最大値ではなく、全範囲で各人の最大得点を返します。いくつかの結合がありますが、まだ試着している必要があります – carpereret
あなたは正しいです。私は私の答えを編集しました。今すぐ試してください。 – jakubka
ありがとう、それです。注意:私の場合ではありませんが、年の回転が範囲であれば間違った行を返すかもしれません - ちょうどYEARをどこに追加してください。 – carpereret