複数の地理的な区域で構成されている組織のメンバーが数年間にわたって獲得した賞を含む表がある場合、各地区の最優秀賞を授与するmysqlクエリはどのようなものでしょうか?私は簡単にこのクエリですべての地区全体でトップ10賞の所得を得ることができます:mysql - 2つの制限が必要ですか?
SELECT Membername, count(Award)as Number FROM awards
GROUP BY Membername
ORDER BY Number desc
LIMIT 10
しかし、私は(約90それらのがあります)各地区のトップ所得者のリストを必要とする、と私はもらっていませんそれはまだです。
私はこれを試してみました:
SELECT Membername, District, count(Award)as Number FROM awards
GROUP BY Membername, District
ORDER BY Number desc, District
LIMIT 90
それはメンバーのための正確な数を持っていますが、地区ごとに1を示したので、いくつかの地区が複数回表示されていません。各地区が一回だけ現れるように、地区ごとのトップ入賞者を列挙するにはどうすればよいですか?
問題は、 'Number'は' count(Award).. GROUP BY Membername、District) 'の派生列だということです。 –
それは問題ですか? –
ええ、「カウントアップ(メンバー名ごとにa.ward、変わっている)<カウント(各メンバー名、地区ごとにb.award)」( 'Number'は' Awards'の列ではありません表)。 –