DATA/SQL
[SQL 풀이] DataLemur - User's Third Transaction
selenaass
2025. 4. 30. 10:47
모든 유저의 세 번째 거래에 대한 정보를 출력하는 쿼리를 만드는 문제
RANK함수를 이용해서 user_id 내 순위를 구하는 쿼리를 만든다.
SELECT user_id,
spend,
transaction_date
FROM (
SELECT user_id,
spend,
transaction_date,
ROW_NUMBER() OVER (
PARTITION BY user_id
ORDER BY transaction_date) AS row_num
FROM transactions
) AS trans_num
WHERE row_num = 3;
1. RANK: 동일한 숫자가 있으면 제외하고 출력(1, 1, 3)
2. DENSE_RANK: 동일한 숫자가 있더라도 제외하지 않고 모두 출력 (1, 1, 2, 3)
3. ROW_NUMBER: 동일한 값이라도 고유한 숫자를 부여함 (1, 2, 3, 4, 5)