📝 1693. Daily Leads and Partners
🔹 일일 리더 및 파트너
각 date_id 및 make_name에 대해 고유한 Lead_id 및 고유한 Partner_ID 수를 찾습니다.
어떤 순서로든 결과 테이블을 반환합니다.
📝 문제 설명
Daily Leads and Partners(1693번) 문제는 특정 날짜(date_id)와 제조사(make_name) 별로 고유한 리드(lead_id)와 고유한 파트너(partner_id)의 수를 계산하는 문제입니다.
즉, 같은 날짜와 제조사에 대해 중복을 제외한 lead_id와 partner_id 개수를 집계해야 합니다.
최종 결과는 어떤 순서로든 반환할 수 있습니다.
📊 테이블 구조
DailySales 테이블
Column Name | Type |
date_id | date |
make_name | varchar |
lead_id | int |
partner_id | int |
💡 SQL 문제 해결 방법
- GROUP BY를 사용하여 date_id와 make_name별로 데이터를 그룹화합니다.
- COUNT(DISTINCT column_name)을 사용하여 중복을 제외한 고유한 lead_id와 partner_id 개수를 계산합니다.
- ORDER BY 조건이 없으므로, 어떤 순서로든 반환할 수 있습니다.
반응형
🖥️ SQL 풀이
SELECT date_id
, make_name
, COUNT(DISTINCT lead_id) AS unique_leads
, COUNT(DISTINCT partner_id) AS unique_partners
FROM DailySales
GROUP BY date_id
, make_name
🔍 쿼리 분석
- GROUP BY date_id, make_name: 날짜와 제조사별로 데이터를 그룹화합니다.
- COUNT(DISTINCT lead_id): 해당 날짜 및 제조사에 대해 고유한 리드 수를 계산합니다.
- COUNT(DISTINCT partner_id): 해당 날짜 및 제조사에 대해 고유한 파트너 수를 계산합니다.
📌 실행 예제
📊 입력 데이터
DailySales 테이블
date_id | make_name | lead_id | partner_id |
2020-12-8 | toyota | 0 | 1 |
2020-12-8 | toyota | 1 | 0 |
2020-12-8 | toyota | 1 | 2 |
2020-12-7 | toyota | 0 | 2 |
2020-12-7 | toyota | 0 | 1 |
2020-12-8 | honda | 1 | 2 |
2020-12-8 | honda | 2 | 1 |
2020-12-7 | honda | 0 | 1 |
2020-12-7 | honda | 1 | 2 |
2020-12-7 | honda | 2 | 1 |
쿼리 실행 결과
date_id | make_name | unique_leads | unique_partners |
2020-12-8 | toyota | 2 | 3 |
2020-12-7 | toyota | 1 | 2 |
2020-12-8 | honda | 2 | 2 |
2020-12-7 | honda | 3 | 2 |
- 2020-12-8의 toyota의 경우는 리더 [0, 1] -> 2명, 파트너 [0, 1, 2] -> 3명을 가지고 있습니다.
- 2020-12-7의 toyota의 경우는 리더 [0] -> 1명, 파트너 [1, 2] -> 2명을 가지고 있습니다.
- 2020-12-8의 honda의 경우는 리더 [1, 2] -> 2명, 파트너 [1, 2] -> 2명을 가지고 있습니다.
- 2020-12-7의 honda의 경우는 리더 [0, 1, 2] -> 3명, 파트너 [1, 2] -> 2명을 가지고 있습니다.
🎯 결론
이 문제는 GROUP BY와 COUNT(DISTINCT)을 활용하여 데이터 집계를 수행하는 방법을 연습할 수 있습니다.
특히 중복 제거 후 개수를 세는 방법을 이해하는 것이 중요합니다.
더 많은 SQL 문제 풀이를 보고 싶다면 LeetCode SQL 문제 모음을 확인해 보세요! 🚀
728x90
반응형
'LeetCode' 카테고리의 다른 글
[LeetCode] 1795. Rearrange Products Table (0) | 2025.03.12 |
---|---|
[LeetCode] 1741. Find Total Time Spent by Each Employee (0) | 2025.03.11 |
[LeetCode] 1667. Fix Names in a Table (0) | 2025.03.10 |
[LeetCode] 1587. Bank Account Summary 2 (0) | 2025.03.10 |
[LeetCode] 1407. Top Travellers (0) | 2025.03.06 |