일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 금융위기
- 데이터분석
- 빅데이터분석기사
- 경제기사코멘트
- SQL중복제거
- SQLPIVOT
- dataq
- SQL특정열중복
- SQL단축키
- 경제기사
- cumcount
- 빅분기
- SQL순서
- 금융공부
- SQL문법
- 국제금융위기
- sql단축키모음
- SQL파싱순서
- 빅데이터분석기사공부방법
- sql주석
- SQL행열변환
- SQL피봇
- 기사코멘트
- 빅데이터분석기사실기
- SQL
- 디플레이션
- 빅분기실기
- python정렬
- ADSP
- SQL행열
Archives
- Today
- Total
은쥬라기월드
ROW_NUMBER() 본문
📌ROW_NUMBER()이란
PARTITION 결과의 행 일련번호를 반환하는 함수로 ORDER BY절에 의해 정렬된 순서를 기준으로 고유한 값을 반환한다.
📌ROW_NUMBER() 문법
ROW_NUMBER() OVER(PARTITION BY [그룹핑 컬럼] ORDER BY [정렬 컬럼])
- PARTITON BY는 선택사항, FROM 절이 생성한 결과에서 ROW_NUMBER가 적용되는 파티션으로 나누기
- ORDER BY는 필수사항, ROW_NUMBER 값이 행에 할당되는 순서 결정
EX) 특정 열을 기준으로 중복을 제거하고 싶을 경우 사용
이름 | 나이 |
김철수 | 34 |
박영희 | 23 |
쥬라기 | 28 |
김철수 | 50 |
김영철 | 48 |
이복희 | 33 |
정보테이블
Q) 정보테이블에서 이름으로 중복을 제거한 데이터를 가져오세요. (중복이 있을 경우 가장 나이가 많은 값을 가져온다.)
A)
SELECT TT.*
FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY 이름 ORDER BY 나이 DESC) AS RK
FROM 정보테이블) TT
WHERE TT.RK = 1;
이름 | 나이 | RK |
김철수 | 50 | 1 |
박영희 | 23 | 1 |
쥬라기 | 28 | 1 |
김영철 | 48 | 1 |
이복희 | 33 | 1 |
TT 테이블
'Language(언어) > SQL' 카테고리의 다른 글
PIVOT() (0) | 2021.12.16 |
---|---|
SQL 파싱 순서 (0) | 2021.09.06 |
SQL 단축키 모음 (0) | 2021.09.06 |
ALTER (0) | 2021.08.05 |
SQL이란 (0) | 2021.08.05 |
Comments