ROW_NUMBER, DENSE_RANK, RANK

MYSQLで分析関数(ROW_NUMBER, DENSE_RANK, RANK)を使わずに連番を振る - Qiita

SELECT ROW_NUMBER() OVER(ORDER BY 点数) AS 番号
     , Z.*
  FROM 成績表 AS Z;
SELECT DENSE_RANK() OVER(ORDER BY 点数) AS 番号
     , Z.*
  FROM 成績表 AS Z;
SELECT RANK() OVER(ORDER BY 点数) AS 番号
     , Z.*
  FROM 成績表 AS Z;
  • ROW_NUMBER(): 1 からインクリメンタルに加算されていく(e.g. 1,2,3,4…)
  • DENSE_RANK(): 1 から同一順は同番号で並んでいく(e.g. 1,2,2,3…)
  • RANK(): 1 から同一順は同番号で並んでいき、同一順位が出た場合、間の番号はskipされる(e.g. 1,2,2,4…)