[ 5-1. 데이터베이스 줄세우기 (ORDER BY) ]
○ ORDER BY 정의
· 가져온 데이터를 정렬해주는 키워드
○ 특징
· ORDER BY [컬럼 이름] 형식으로 사용
· 입력한 [컬럼 이름]의 값을 기준으로 모든 row를 정렬
· 기본 정렬 규칙은 오름차순
· 여러 컬름 정렬도 가능하며, 키워드 뒤에 [컬럼 이름]을 복수 개 입력하면 됨
/* ORDER BY 활용 예제 */
-- 오름차순 정렬 --
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE 조건식
ORDER BY [컬럼 이름] ASC;
ex) SELECT number, name
FROM mypokemon
ORDER BY number ASC;
-- 내림차순 정렬 --
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE 조건식
ORDER BY [컬럼 이름] DESC;
ex) SELECT number, name, attack, defense
FROM mypokemon
ORDER BY attack DESC, defense
SELECT number, name, attack, defense
FROM mypokemon
ORDER BY 3 DESC, 4;
[ 5-2. 데이터 순위 만들기 (RANK, DENSE_RANK, ROW_NUMBER) ]
○ RANK
· 데이터를 정렬해 순위를 만들어주는 함수
· 공동 순위가 있으면 다음 순서로 건너 뜀
· RANK() OVER (ORDER BY [컬럼 이름]) 형식으로 사용
· 항상 ORDER BY와 함께 사용
· SELECT 절에 사용하며, 정렬된 순서에 순위를 붙인 새로운 컬럼을 보여줌
· 테이블의 실제 데이터에는 영향을 미치지 않음
/* RANK 활용 예제 */
-- 오름차순 순위 만들기 --
SELECT [컬럼 이름], ···, RANK() OVER (ORDER BY [컬럼 이름])
FROM [테이블 이름]
WHERE 조건식;
ex) SELECT name, attack, RANK() OVER (ORDER BY attack) AS attack_rank
FROM pokemon.mypoekmon;
-- 내림차순 순위 만들기 --
SELECT [컬럼 이름], ···, RANK() OVER (ORDER BY [컬럼 이름] DESC)
FROM [테이블 이름]
WHERE 조건식;
ex) SELECT name, attack, RANK() OVER (ORDER BY attack DESC) AS attack_rank
FROM pokemon.mypoekmon;
○ DENSE_RANK
· 데이터를 정렬해 순위를 만들어주는 함수
· 공동 순위가 있어도 다음 순위를 뛰어 넘지 않음
/* DENSE_RANK 활용 예제 */
-- 오름차순 순위 만들기 --
SELECT [컬럼 이름], ···, DENSE_RANK() OVER (ORDER BY [컬럼 이름])
FROM [테이블 이름]
WHERE 조건식;
ex) SELECT name, attack, DENSE_RANK() OVER (ORDER BY attack) AS attack_rank
FROM pokemon.mypoekmon;
-- 내림차순 순위 만들기 --
SELECT [컬럼 이름], ···, DENSE_RANK() OVER (ORDER BY [컬럼 이름] DESC)
FROM [테이블 이름]
WHERE 조건식;
ex) SELECT name, attack, DENSE_RANK() OVER (ORDER BY attack DESC) AS attack_rank
FROM pokemon.mypoekmon;
○ ROW_NUMBER
· 데이터를 정렬해 순위를 만들어주는 함수
· 공동 순위를 무시함
/* ROW_NUMBER 활용 예제 */
-- 오름차순 순위 만들기 --
SELECT [컬럼 이름], ···, ROW_NUMBER() OVER (ORDER BY [컬럼 이름])
FROM [테이블 이름]
WHERE 조건식;
ex) SELECT name, attack, ROW_NUMBER() OVER (ORDER BY attack) AS attack_rank
FROM pokemon.mypoekmon;
-- 내림차순 순위 만들기 --
SELECT [컬럼 이름], ···, ROW_NUMBER() OVER (ORDER BY [컬럼 이름] DESC)
FROM [테이블 이름]
WHERE 조건식;
ex) SELECT name, attack, ROW_NUMBER() OVER (ORDER BY attack DESC) AS attack_rank
FROM pokemon.mypoekmon;
○ 데이터 순위를 만드는 함수 비교
/* 순위 함수 비교 */
SELECT name, attack
RANK() OVER (ORDER BY attack DESC) AS rank_rank
DENSE_RANK() OVER (ORDER BY attack DESC) as rank_desne_rank,
ROW_NUMBER() OVER (ORDER BY attack DESC) as rank_row_number
FROM mypokemon;
▼

[ 5-3. 문자형 데이터 ]

[ 5-4. 숫자형 데이터 ]

[ 5-5. 날짜형 데이터 ]


○ DATE FORMAT 함수


'📒 교육 및 공부 > [교육] SQL 데이터분석 첫걸음' 카테고리의 다른 글
| [SQL 데이터분석 첫걸음] Day07. 규칙 만들기 (0) | 2023.12.17 |
|---|---|
| [SQL 데이터분석 첫걸음] Day06. 데이터 그룹화하기 (0) | 2023.12.14 |
| [SQL 데이터분석 첫걸음] Day04. 조건에 맞는 데이터 가져오기 (1) | 2023.11.25 |
| [SQL 데이터분석 첫걸음] Day03. 데이터 가져오기 (1) | 2023.11.21 |
| [SQL 데이터분석 첫걸음] Day02. 데이터베이스 다루기 (1) | 2023.11.21 |