[SQL] LeetCode 1907. Count Salary Categories

LeetCode 1907. Count Salary Categories 문제를 파헤쳐보자 :)

Jul 8, 2024

1. 문제 설명

1-1. 테이블 설명

1-1-1. Accounts 테이블

notion image
✔️ account_id는 이 테이블의 기본 키(고유한 값을 가진 열)입니다.
✔️ 각 행에는 하나의 은행 계좌에 대한 월 소득에 대한 정보가 포함되어 있습니다.

1-2. 문제 설명

각 급여 범주의 은행 계좌 수를 계산하는 해를 작성합니다.
"Low Salary”: 모든월급은 엄밀하게 2만 달러 이하이다.
"Average Salary": 포함 범위의 모든 급여 [$200, $50000].
"High Salary": 모든 월급은 엄밀하게 5만 달러 이상이다.
결과표에는 세 범주가 모두 포함되어야 합니다. 범주에 계정이 없으면 0을 반환합니다.

2. 문제 풀이

2-1. 최종 풀이

SELECT 'Low Salary' AS Category, COUNT(*) AS accounts_count FROM Accounts WHERE income < 20000 UNION SELECT 'Average Salary' AS Category, COUNT(*) AS accounts_count FROM Accounts WHERE income >= 20000 AND income <= 50000 UNION SELECT 'High Salary' AS category, COUNT(*) AS accounts_count FROM Accounts WHERE income > 50000;

2-2. 단계별 풀이

2-2-1. 첫 번째 쿼리 만들기

SELECT 'Low Salary' AS Category, COUNT(*) AS accounts_count FROM Accounts WHERE income < 20000
해당 코드를 실행시키면, Accounts 테이블의 “Low Salary” 범주와 이에 해당하는 개수를 반환한다.
WHERE 절에 income이 20,000 미만인 행에 대한 조건과, SELECT 절에 “Low Salary” 범주 및 개수를 반환하는 조건을 작성해준다.
 

2-2-2. 두 번째 쿼리 만들기

SELECT 'Average Salary' AS Category, COUNT(*) AS accounts_count FROM Accounts WHERE income >= 20000 AND income <= 50000
해당 코드를 실행시키면, Accounts 테이블의 “Average Salary” 범주와 이에 해당하는 개수를 반환한다.
WHERE 절에 income이 20,000 이상 50,000 이하인 행에 대한 조건과, SELECT 절에 “Average Salary” 범주 및 개수를 반환하는 조건을 작성해준다.

2-2-3. 세 번째 쿼리 만들기

SELECT 'High Salary' AS category, COUNT(*) AS accounts_count FROM Accounts WHERE income > 50000
 
 
해당 코드를 실행시키면, Accounts 테이블의 “High Salary” 범주와 이에 해당하는 개수를 반환한다.
WHERE 절에 income이 50,000 초과인 행에 대한 조건과, SELECT 절에 “High Salary” 범주 및 개수를 반환하는 조건을 작성해준다.

2-2-4. 합치기

SELECT 'Low Salary' AS Category, COUNT(*) AS accounts_count FROM Accounts WHERE income < 20000 UNION SELECT 'Average Salary' AS Category, COUNT(*) AS accounts_count FROM Accounts WHERE income >= 20000 AND income <= 50000 UNION SELECT 'High Salary' AS category, COUNT(*) AS accounts_count FROM Accounts WHERE income > 50000;
 
해당 코드를 실행시키면, 각각의 쿼리에 해당하는 범주 및 행 개수를 반환하여 합쳐준다.