MW211 EXIT

devlog
MySQL/結果に連番をふる
2014年03月06日
得点が多い順にならべて順位をつけるSQLは以下のような感じ。
┌──────────────────────────────────────┐
│SELECT 列,                                                                  │
│       (SELECT COUNT(*)                                                     │
│            FROM 表 AS 別表                                                 │
│            WHERE 表.得点 < 別表.得点                                       │
│       ) + 1 AS `順位`                                                      │
│    FROM 表                                                                 │
│    ORDER BY 得点 DESC;                                                     │
└──────────────────────────────────────┘

逆に、失点の少ない順にならべて順位をつけるSQLは以下のような感じ。
┌──────────────────────────────────────┐
│SELECT 列,                                                                  │
│       (SELECT COUNT(*)                                                     │
│            FROM 表 AS 別表                                                 │
│            WHERE 表.失点 > 別表.失点                                       │
│       ) + 1 AS `順位`                                                      │
│    FROM 表                                                                 │
│    ORDER BY 失点 ASC;                                                      │
└──────────────────────────────────────┘

自己結合を使う。
分類:MySQL