sql >> データベース >  >> RDS >> Oracle

MySQLのORACLESrank()に相当

    直接同等のものはありませんが、いくつかの(それほど効率的ではない)自己結合を使用して偽造することができます。 MySQLクエリハウツーのコレクションからのサンプルコード:

    SELECT v1.name, v1.votes, COUNT(v2.votes) AS Rank
    FROM votes v1
    JOIN votes v2 ON v1.votes < v2.votes OR (v1.votes=v2.votes and v1.name = v2.name)
    GROUP BY v1.name, v1.votes
    ORDER BY v1.votes DESC, v1.name DESC;
    +-------+-------+------+
    | name  | votes | Rank |
    +-------+-------+------+
    | Green |    50 |    1 |
    | Black |    40 |    2 |
    | White |    20 |    3 |
    | Brown |    20 |    3 |
    | Jones |    15 |    5 |
    | Smith |    10 |    6 |
    +-------+-------+------+ 
    


    1. MySQL DEGREES()関数–ラジアンから度に変換

    2. MariaDBでのNVL()の仕組み

    3. novalidateオプションで検証できません

    4. PostgreSQLの「エラー:各EXCEPTクエリには同じ数の列が必要」を修正