ホームページ  >  に質問  >  本文

MySQLのランキング機能

<p>顧客のランキングを調べる必要があります。ここでは、要件に従って、対応する ANSI 標準 SQL クエリを追加します。 MySQL への変換を手伝ってください。 </p> <pre class="brush:php;toolbar:false;">SELECT RANK() OVER (PARTITION BY Gender ORDER BY Age) AS [性別によるパーティション], ファーストネーム、 年、 性別 FROM 人</pre> <p>MySQL にランキングをクエリする関数はありますか? </p>
P粉310754094P粉310754094423日前408

全員に返信(2)返信します

  • P粉757432491

    P粉7574324912023-08-24 20:59:09

    これは、パーティション上の高密度レベルを行に割り当てる一般的なソリューションです。ユーザー変数を使用します:

    リーリー

    変数の割り当ては CASE 式内で行われることに注意してください。これにより (理論的には) 評価順序の問題が解決されます。 IS NOT NULL は、データ型変換と短絡の問題を処理するために追加されました。

    PS: これは、タイをチェックするすべての条件を削除することで、パーティション上の行番号に簡単に変換できます。

    リーリー

    dbデモ<>フィドル

    返事
    0
  • P粉218361972

    P粉2183619722023-08-24 09:36:05

    1 つのオプションは、次のようなランキング変数を使用することです:

    リーリー

    (SELECT @curRank := 0) セクションでは、別の SET コマンドを使用せずに変数を初期化できます。

    ###テストケース:### リーリー ###結果:### リーリー

    返事
    0
  • キャンセル返事