https://solvesql.com/problems/correlation-penguin/
https://solvesql.com/problems/correlation-penguin/
solvesql.com
-- 펭귄 데이터에서 종별로
-- 날개 길이와 몸무게 사이의 상관계수(Correlation Coefficient)를 계산
WITH avg_peng AS (
-- 각 펭귄의 종별 평균 날개 길이와 평균 몸무게를 계산한 임시 테이블
SELECT
species, -- 펭귄의 종 (예: Adelie, Chinstrap, Gentoo)
flipper_length_mm, -- 날개 길이(mm)
AVG(flipper_length_mm) OVER (PARTITION BY species) AS avg_fli, -- 종별 평균 날개 길이
body_mass_g, -- 몸무게(g)
AVG(body_mass_g) OVER (PARTITION BY species) AS avg_bm -- 종별 평균 몸무게
FROM
penguins -- 펭귄 데이터 테이블
)
-- 상관계수 계산
SELECT
species, -- 펭귄의 종
ROUND(
-- 상관계수 계산 공식
SUM((flipper_length_mm - avg_fli) * (body_mass_g - avg_bm)) / -- 공분산
SQRT(SUM(POWER(flipper_length_mm - avg_fli, 2))) / -- 날개 길이 분산의 제곱근
SQRT(SUM(POWER(body_mass_g - avg_bm, 2))), -- 몸무게 분산의 제곱근
3 -- 소수점 3자리로 반올림
) AS corr -- 날개 길이와 몸무게 간의 상관계수
FROM
avg_peng -- 계산된 임시 테이블을 기반으로 작업
GROUP BY
species -- 종별로 상관계수 계산
'SQL' 카테고리의 다른 글
[solvesql - day 20] 미세먼지 수치의 계절간 차이 (0) | 2025.01.11 |
---|---|
[solvesql - day 19] 전국 카페 주소 데이터 정제하기 (0) | 2025.01.11 |
[solvesql - day 17] 멀티 플랫폼 게임 찾기 (0) | 2025.01.11 |
[solvesql - day 16] 스테디셀러 작가 찾기 (0) | 2025.01.11 |
[solvesql - day 15] 폐쇄할 따릉이 정류소 찾기 2 (0) | 2025.01.11 |