FISHINFO 테이블에서 2021년도에 잡은 물고기 수를 출력하는 SQL 문을 작성해주세요.
이 때 컬럼명은 'FISH_COUNT' 로 지정해주세요.
SELECT COUNT(ID) AS FISH_COUNT FROM FISH_INFO WHERE YEAR(TIME) = '2021'해당 문제에서 포인트는 YEAR 함수 이다.
FISH_INFO 테이블은 아래와 같다.
YEAR 함수를 이용하여 연도(4자리) 값을 추출, 조건절에 사용하여 풀었다.

각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL 문을 작성해주세요. 이때 각 분기에는 'Q' 를 붙이고 분기에 대해 오름차순으로 정렬해주세요.
대장균 개체가 분화되지 않은 분기는 없습니다.
SELECT CASE WHEN A.EXT_MONTH BETWEEN 1 AND 3 THEN '1Q' WHEN A.EXT_MONTH BETWEEN 4 AND 6 THEN '2Q' WHEN A.EXT_MONTH BETWEEN 7 AND 9 THEN '3Q' ELSE '4Q' END AS QUARTER, COUNT(A.ID) AS ECOLI_COUNT FROM ( SELECT ID, MONTH(DATE_FORMAT(DIFFERENTIATION_DATE, '%Y-%m-%d')) AS EXT_MONTH FROM ECOLI_DATA ) A GROUP BY QUARTER ORDER BY QUARTER해당 문제에서 포인트는 CASE 구문, 날짜 함수 이다.
ECOLIDATA 테이블은 아래와 같다.
문제의 목적과 그에 따른 조건들을 살펴보면서, 데이터 추출에 필요한 작업을 정리해보았다.
1) DIFFERENTIATION_DATE 컬럼에서 월 값 출력
2) CASE WHEN 구문으로 각 분기 데이터 추출
3) COUNT 함수 사용
쿼리 작성에 대한 부분은 다양하다.
코드테스트를 목적으로 한다면, 문제에 명시된 조건들을 토대로 작성을 하면 된다.
실무에서는,
쿼리를 날리는 매순간 비용(리소스) 이 들기 때문에, 줄일 수 있는 형태로 작성되어야 한다고 함.
EX> 하나의 쿼리에서 테이블을 참고하는 횟수를 최소화 (WITH 구문 등)