- 카테고리:
- 윈도우 함수 구문 및 사용법 (순위 지정) 
ROW_NUMBER¶
윈도우 파티션 내의 각 행에 대해 고유한 행 번호를 반환합니다.
행 번호는 1에서 시작하여 순차적으로 계속됩니다.
구문¶
ROW_NUMBER() OVER (
  [ PARTITION BY <expr1> [, <expr2> ... ] ]
  ORDER BY <expr3> [ , <expr4> ... ] [ { ASC | DESC } ]
  )
인자¶
없습니다.
사용법 노트¶
- expr1및- expr2는 분할할 기준이 되는 열 또는 식을 지정합니다. 0개, 1개 또는 그 이상의 식을 기준으로 분할할 수 있습니다.- 예를 들어, 여러 주(또는 지방)에서 데이터를 선택하고, 각 주 내에서 1에서 N까지의 행 번호를 원한다고 가정합니다. 이 경우, 주를 기준으로 분할할 수 있습니다. - 단일 그룹만 원하는 경우, PARTITION BY 절을 생략하십시오. 
- expr3및- expr4는 행의 순서를 결정하는 데 사용할 열 또는 식을 지정합니다. 1개 이상의 식을 기준으로 정렬할 수 있습니다.- 예를 들어, 옥수수 생산량에 따라 농부를 나열하려면 - bushels_produced열을 사용합니다. 자세한 내용은 이 항목에 있는 예 를 참조하십시오.
예¶
아래 쿼리는 파티션 내에서 행 번호를 할당하는 방법을 보여줍니다. 이 경우, 파티션은 증권 거래소입니다(예: “NASDAQ”의 경우 “N”).
SELECT
    symbol,
    exchange,
    shares,
    ROW_NUMBER() OVER (PARTITION BY exchange ORDER BY shares) AS row_number
  FROM trades;
+------+--------+------+----------+
|SYMBOL|EXCHANGE|SHARES|ROW_NUMBER|
+------+--------+------+----------+
|SPY   |C       |   250|         1|
|AAPL  |C       |   250|         2|
|AAPL  |C       |   300|         3|
|SPY   |N       |   100|         1|
|AAPL  |N       |   300|         2|
|SPY   |N       |   500|         3|
|QQQ   |N       |   800|         4|
|QQQ   |N       |  2000|         5|
|YHOO  |N       |  5000|         6|
+------+--------+------+----------+