728x90
반응형
LV 2
1. 분기별 분화된 대장균의 개체 수 구하기
문제 각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL 문을 작성해주세요. 이때 각 분기에는 'Q' 를 붙이고 분기에 대해 오름차순으로 정렬해주세요. 대장균 개체가 분화되지 않은 분기는 없음
-- case문
SELECT
CASE
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 1 AND 3 THEN '1Q'
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 4 AND 6 THEN '2Q'
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 7 AND 9 THEN '3Q'
WHEN MONTH(DIFFERENTIATION_DATE) IN (1, 2, 3) THEN '1Q'
WHEN MONTH(DIFFERENTIATION_DATE) IN (4, 5, 6) THEN '2Q'
WHEN MONTH(DIFFERENTIATION_DATE) IN (7, 8, 9) THEN '3Q'
ELSE '4Q'
END AS QUARTER,
COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER;
-- quarter 함수
SELECT
CONCAT(QUARTER(DIFFERENTIATION_DATE), 'Q') AS QUARTER,
COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER;
오답노트
★ when month(컬럼) in 이나 between 사용
month(컬럼)의 숫자는 문자형이 아님! 고로 숫자를 그냥 입력하면 됨.
★ quarter 함수
MySQL 등에서 날짜 값이 속한 "연간 분기(quarter)를 구할 때 사용하는 내장 함수
형식: quarter(컬럼)
반환: 지정한 컬럼(date형식)의 분기를 정수 1~4로 변환
2. 특정 물고기를 잡은 총 수 구하기
문제 FISH_INFO 테이블에서 잡은 BASS와 SNAPPER의 수를 출력하는 SQL 문을 작성. 컬럼명은 'FISH_COUNT`.
select count(*) as fish_count
from fish_info fi inner join fish_name_info fn on fi.fish_type = fn.fish_type
where fn.fish_name in ('bass', 'snapper')
오답노트
★ 컬럼명을 착각함^^
728x90
반응형