가장 큰 물고기 10마리의 ID와 길이를 출력하는 문제입니다.
FISH_INFO 테이블에서
SELECT으로 id와 length를 조회 한 후
ORDER BY 에서 길이를 내림차순으로 정렬 한 후 id 기준으로 오름차순 합니다.
그 후 상위 10개만 가져오면 가장 큰 물고기 값 10를 가져올 수 있습니다.
SELECT ID, LENGTH
FROM FISH_INFO
ORDER BY LENGTH DESC, ID
LIMIT 10
max를 이용하여 가장 큰 물고기 길이를 구하는 문제입니다.
max(length)로 가장 큰 값을 가져오고 concat으로 cm를 붙여주면 정답입니다.
SELECT concat(MAX(LENGTH),"cm") MAX_LENGTH
FROM FISH_INFO
AVG 함수를 이용하여 평균을 구하는 문제인데요
그 전에 CASE문을 사용하여 10CM 초과하는 값은 그대로 출력해주고 NULL 값인 길이를 10cm로 변경 해줘야합니다.
그 후 AVG함수로 평균을 내고, ROUND함수를 통해 반올림 해주면 정답입니다.
SELECT ROUND(AVG(CASE WHEN LENGTH > 10 THEN LENGTH ELSE "10" END),2) AVERAGE_LENGTH
FROM FISH_INFO
이 문제는 손쉽게 풀 수 있는 문제입니다.
FISH_INFO 테이블에서 10CM 이하, null을 가지고 있는 데이터만 조회 한 후
COUNT 함수를 이용하여 값을 세면 됩니다.
SELECT COUNT(ID) FISH_COUNT
FROM FISH_INFO
WHERE LENGTH IS NULL
2021년도에 잡은 물고기만 출력해야하기에
WHERE절에서 time를 연도만 보이게 변경 후 2021년도 값을 가져와
COUNT 함수를 이용하여 세면 값을 구 할 수 있습니다.
SELECT COUNT(*) FISH_COUNT
FROM FISH_INFO
WHERE YEAR(TIME) = "2021"
GROUP BY에서 TIME을 월만 보이게 변경 후 그룹화 합니다.
그 후 SELECT 절에서 count 함수를 이용하여 물고기 수를 세고, month로 시간을 월만 표시하게 합니다.
그 후에는 월별로 오름차순 정렬해주면 정답입니다.
SELECT COUNT(*) FISH_COUNT, month(time) month
FROM FISH_INFO
GROUP BY MONTH(TIME)
ORDER BY month