GROUP BY로는 해결이 안 되는 상황이 있습니다. 그룹별 집계는 하고 싶은데 개별 행도 함께 보고 싶거나, 각 행의 순위를 매기거나, 이전 행과의 차이를 계산할 때입니다. 윈도우 함수를 알기 전까지는 서브쿼리를 중첩해서 해결했는데, 이걸 알고 나서 쿼리가 훨씬 간결해졌습니다. 오늘은 예제 데이터를 하나 두고 함수별로 어떤 결과가 나오는지 직접 보면서 정리해보겠습니다. 1. GROUP BY vs 윈도우 함수윈도우 함수는 집계는 하되 행을 줄이지 않습니다. GROUP BY는 그룹으로 묶인 행들이 하나로 합쳐지지만, 윈도우 함수는 원래 행 수를 유지하면서 계산 결과를 새 컬럼으로 붙입니다. 기본 문법은 함수명() OVER (PARTITION BY 컬럼 ORDER BY 컬럼) 형태입니다. PARTITION ..
SQL을 처음 배울 때 서브쿼리로 모든 걸 해결하려다 쿼리가 점점 깊어지는 경험을 하게 됩니다. 중첩이 3단계를 넘어가면 본인이 쓴 쿼리도 다시 읽기가 힘들어지거든요. CTE를 알고 나서 쿼리를 구조화하는 방식이 바뀌었습니다. 오늘은 서브쿼리와 CTE가 어떻게 다른지, 각각 언제 쓰는 게 적합한지 정리해보겠습니다. 1. 서브쿼리서브쿼리는 쿼리 안에 중첩된 쿼리입니다. SELECT, FROM, WHERE 절 어디에나 들어갈 수 있고, 외부 쿼리의 결과를 필터링하거나 가공하는 데 씁니다. 간단한 필터링이나 집계 결과를 한 번만 참조할 때는 서브쿼리가 빠르고 직관적입니다. 서브쿼리가 위치하는 곳에 따라 성격이 달라집니다. WHERE 절 서브쿼리는 조건 필터링에, FROM 절 서브쿼리(인라인 뷰)는 임시 테이블..
📌 문제 설명🔗 https://www.hackerrank.com/challenges/contest-leaderboard/problem Contest Leaderboard | HackerRankGenerate the contest leaderboard.www.hackerrank.com 해커별 문제 최고점만 합산해 리더보드를 출력합니다. 같은 문제에 여러 제출이 있으므로 문제별 최고점만 반영해야 합니다. 총점이 0보다 큰 해커만 출력합니다. 총점 내림차순, 동점이면 hacker_id 오름차순 정렬입니다. 📌 문제 풀이 1️⃣ hacker_id + challenge_id 단위로 MAX(score)를 구한다.2️⃣ 해당 결과를 hacker_id 기준으로 SUM 하여 총점을 계산한다.3️⃣ HAVING to..
📌 문제 설명🔗 https://www.hackerrank.com/challenges/weather-observation-station-5/problem Weather Observation Station 5 | HackerRankWrite a query to print the shortest and longest length city name along with the length of the city names.www.hackerrank.com CITY 길이가 가장 짧은/긴 도시를 각각 1개씩 출력합니다. 동률은 CITY 사전순으로 결정합니다.최소 길이 1개, 최대 길이 1개 총 2행 출력이 필요합니다. 동일 길이일 때 CITY 오름차순 우선입니다. 📌 문제 풀이 1️⃣ 길이 오름차순 + CITY..
📌 문제 설명🔗 https://www.hackerrank.com/challenges/average-population-of-each-continent/problem Average Population of Each Continent | HackerRankQuery the names of all continents and their respective city populations, rounded down to the nearest integer.www.hackerrank.com 대륙별 도시 평균 인구를 소수점 버림(FLOOR)하여 출력합니다. 대륙별 GROUP BY가 필요합니다. 평균 인구는 FLOOR 처리해야 합니다. 📌 문제 풀이 1️⃣ CITY와 COUNTRY를 조인해 도시를 대륙으로 매핑한다..
📌 문제 설명🔗 https://www.hackerrank.com/challenges/contest-leaderboard Contest Leaderboard | HackerRankGenerate the contest leaderboard.www.hackerrank.com Submissions 테이블이 주어집니다.각 해커(hacker_id)가 여러 문제를 제출할 수 있고 같은 문제에 대해 여러 번 제출할 수도 있습니다.해야 할 일은:각 해커가 각 문제에서 받은 최고 점수만 반영 그 최고 점수들을 합산하여 해커별 총 점수를 계산총 점수가 0보다 큰 해커만 출력점수 내림차순 정렬, 같으면 hacker_id 오름차순 정렬 📌 문제 풀이 1️⃣ 같은 문제에 여러 번 제출 → 문제별 최고 점수만 필요2️⃣ ..
HELLO WORLD
안녕하세요. 데이터로 말하는 분석가 모모입니다.
데이터를 구조화하고 분석하는 과정과 실무에 활용되는 도구 중심의 내용을 기록합니다.