SELECT
특정 형질을 가진 대장균 찾기(Lv1)
문제 설명
문제
풀이
SELECT로 COUNT를 조회
WHERE에서 GENOTYPE이 2번 형질을 가지지 않으면서(GENOTYPE&2 =0)
GENOTYPE이 1번이나 3번 형질을 가지게 설정(GENOTYPE&1 > 0 or GENOTYPE&4 > 0)
SELECT COUNT(*) AS Count
FROM ECOLI_DATA
WHERE GENOTYPE&2 =0
AND (GENOTYPE&1 > 0 or GENOTYPE&4 > 0);
대장균의 크기에 따라 분류하기2 (Lv3)
문제 설명
문제
풀이
WITH에서 NTILE(4)를 SIZE_OF_COLONY별로 설정하고 COLONY_RATE라고 지칭
SELECT로 ID, COLONY_NAME을 조회
문제에서 요구한 조건에 따라 COLONY_NAME을 설정(구간별 네이밍)
ORDER BY에서 ID를 오름차순 정렬
WITH A AS (SELECT ID,
NTILE(4) OVER(ORDER BY SIZE_OF_COLONY DESC) AS COLONY_RATE
FROM ECOLI_DATA)
SELECT ID,
CASE
WHEN COLONY_RATE = 1 THEN 'CRITICAL'
WHEN COLONY_RATE = 2 THEN 'HIGH'
WHEN COLONY_RATE = 3 THEN 'MEDIUM'
ELSE 'LOW'
END AS COLONY_NAME
FROM A
ORDER BY ID;
GROUP BY
물고기 종류 별 잡은 수 구하기 (Lv2)
문제 설명
문제
풀이
SELECT에서 FISH_COUNT, FISH_NAME을 조회
JOIN에서 공통 컬럼인 FISH_TYPE로 두 테이블을 JOIN
GROUP BY에서 FISH_NAME으로 그룹화
ORDER BY에서 FISH_COUNT를 내림차순 정렬
SELECT COUNT(*) AS FISH_COUNT, N.FISH_NAME
FROM FISH_NAME_INFO N
JOIN FISH_INFO I ON I.FISH_TYPE = N.FISH_TYPE
GROUP BY N.FISH_NAME
ORDER BY FISH_COUNT DESC;
String, Date
연도 별 평균 미세먼지 농도 조회하기 (Lv2)
문제 설명
문제
풀이
SELECT에서 YEAR, PM10, PM2.5를 조회
PM10, PM2.5 각각 PM_VAL1, PM_VAL2의 평균을 소수 셋째 자리에서 반올림한 값들임
WHERE에서 LOCATION2를 수원으로 설정
GROUP BY에서 YEAR(YM)으로 그룹화
ORDER BY에서 YEAR 기준으로 오름차순 정렬
SELECT YEAR(YM) AS YEAR,
ROUND(AVG(PM_VAL1),2) AS 'PM10', ROUND(AVG(PM_VAL2),2) AS 'PM2.5'
FROM AIR_POLLUTION
WHERE LOCATION2 = '수원'
GROUP BY YEAR(YM)
ORDER BY YEAR;
'SQL > 프로그래머스' 카테고리의 다른 글
프로그래머스 | SQL 스터디 19 (재귀적 CTE) (완) (1) | 2024.09.24 |
---|---|
프로그래머스 | SQL 스터디 18 (0) | 2024.09.23 |
프로그래머스 | SQL 스터디 16 (1) | 2024.09.18 |
프로그래머스 | SQL 스터디 15 (SUBSTIRNG) (2) | 2024.09.17 |
프로그래머스 | SQL 스터디 14 (Union, Union all) (3) | 2024.09.16 |