ホームページ >データベース >mysql チュートリアル >mysqlでランキングを達成する方法

mysqlでランキングを達成する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-09-28 13:34:143355ブラウズ

mysql でランキングを達成する方法: デモ関数を使用します。構文は [SELECT banji,avg(score) as AvgS FROM table_test GROUP BY banji ORDER BY AvgS DESC] です。

mysqlでランキングを達成する方法

mysql でランキングを達成する方法:

デモで実装可能

注意してくださいその中の A までは、ネストされたクエリであるため、ランキングは正確になります。

FROM
(
     SELECT A.*,@rank:=@rank+1 as pm
     FROM 
     (
      SELECT banji,avg(score) as AvgS FROM table_test GROUP BY banji  ORDER BY AvgS   DESC
     ) A ,(SELECT @rank:=0) B
) M
ORDER BY M.banji

サブクエリが存在せず、以下のSQLを使用した場合、ソートが正しく行われません。何が問題になるかは、GROUP BY に複数のグループ化があるかどうかによって異なります。

SELECT banji,avg(score) as AvgS ,@rank:=@rank+1 as pm
FROM table_test A,(SELECT @rank:=0) B
GROUP BY banji
ORDER BY AvgS   DESC

理由: @rank ランキングは GROUP BY よりも前に発生します。 GROUP BY は、ランク付けされた結果をグループ化します。グループ化された結果をランク付けする場合は、サブクエリを使用します。

#その他の関連する無料学習の推奨事項: mysql チュートリアル(ビデオ)

以上がmysqlでランキングを達成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。