데이터 분석

[Day 2] solvesql | Advent of SQL 2024 | 펭귄 조사하기 본문

SQL/solvesql

[Day 2] solvesql | Advent of SQL 2024 | 펭귄 조사하기

딱한아이 2024. 12. 2. 14:45
펭귄 조사하기

 

문제 조건

1. 서식지 별 고유한 펭귄 종과 서식지를 출력

2. 서식지 순으로 오름차순, 서식지가 같은 서로 다른 펭귄 종 사이에서는 펭귄 종 이름 순으로 오름차순

3. 펭귄의 종, 펭귄 서식지 출력

 

Solution
SELECT DISTINCT species
     , island 
FROM penguins
ORDER BY 2, 1

피드백

 

'서식지 별'이라는 조건에 집중한 나머지, 아래와 같이 쿼리를 작성했다.

SELECT species
     , island 
FROM penguins
GROUP BY island
ORDER BY 2, 1

 

하지만 SQLite에서 'GROUP BY'는 집계 함수가 없는 경우, 그룹 내 첫 번째로 만나는 값만 반환하기 때문에 위 쿼리는 적절하지 않다. 이로 인해 원하는 (species, island) 조합의 중복을 제거하는 결과를 얻을 수 없다.

 

주어진 문제를 해결하기 위해서는 (species, island)를 기준으로 중복된 행을 제거해야 한다. 즉, species와 island의 조합이 동일한 데이터는 한 번만 출력되도록 쿼리를 작성해야 한다.

✔️0206 0808 복습