티스토리 뷰

프로그래머스 SQL 고득점 kit 7일차( SUM, MAXm MIN 10문제)

 

1. RANK

1) RANK()

- 데이터에 순위를 매기는 함수

- 동일 값에 동일 순위, 이후에는 순위를 건너뛴다

SELECT column1, column2,
       RANK() OVER (PARTITION BY column1 ORDER BY column2 DESC) AS rank
FROM table_name;

2) DENSE_RANK()

- 동일 값에 동일 순위, 순위 연속

SELECT column1, column2,
       DENSE_RANK() OVER (PARTITION BY column1 ORDER BY column2 DESC) AS rank
FROM table_name;

3) ROW_NUMBER()

- 모두 고유 순위를 부여한다.

SELECT column1, column2,
       ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2 DESC) AS rank
FROM table_name;

 

2. PARTITION BY

- 데이터를 특정 기준으로 그룹화 하여 윈도우 함수를 적용할 때 사용

- 그룹 내에서만 윈도우 함수가 작동하며, 그룹 간에는 영향을 주지 않는다

SELECT column1, column2,
       aggregate_function() OVER (PARTITION BY column1) AS result
FROM table_name;

3. RANK와 PARTITION BY 의 결합

SELECT StudentName, Subject, Score,
       RANK() OVER (PARTITION BY Subject ORDER BY Score DESC) AS Rank
FROM ExamScores;
Name Subject Score Rank
Alice 수학 95 1
Bob 수학 90 2
Charlie 수학 90 2
Dave 수학 85 4
Alice 과학 88 1
Bob 과학 85 2

 

3. FORMAT(숫자, 소수점 자릿수) : 문자열로 반환

SELECT FORMAT(123.456, 2) # 123.46 소숫점 2째자리 까지 반환

 

4. CONCAT : 문자열 결합 (문자+숫자의 경우 숫자는 자동으로 문자열로 변환됨)

SELECT CONCAT(string1, string2, ..., stringN) # string1string2...stringN
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함