https://school.programmers.co.kr/learn/courses/30/lessons/298516
코드설명
SELECT + COUNT(*) + YEAR()를 활용한 문제입니다.
이러한 문제를 풀떄 사소하지만 중요한점은, 조건하는 것이 문자열인지, 정수형인지에 따라 쿼리의 속도가 많이 차이납니다. 이번 문제는 문자열이므로 문자열로 처리해야합니다.
코드
SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE YEAR(TIME) = '2021';
아래의 쿼리같은경우 문자열을 정수형으로 비교하기에 속도가 더 느립니다.
SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE YEAR(TIME) = 2021;
DATE_FORMAT(TIME, '%Y')를 활용하여 날짜에서 연도를 추출한 경우입니다.
SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE DATE_FORMAT(TIME, '%Y') = '2021';
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO AS FI1
WHERE DATE_FORMAT(FI1.TIME, '%Y') = '2021';
SELECT COUNT(ID) AS FISH_COUNT
FROM FISH_INFO AS FI
WHERE DATE_FORMAT(FI.TIME, '%Y') = 2021