본문 바로가기
오답노트/SQL_1차

DAY 6.

by 쿙이콩 2025. 5. 19.
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
반응형

'오답노트 > SQL_1차' 카테고리의 다른 글

DAY 8.  (2) 2025.05.21
DAY 7.  (0) 2025.05.20
DAY 5.  (0) 2025.05.17
DAY 4.  (3) 2025.05.16
DAY 3.  (6) 2025.05.15