물고기 종류 별 대어 찾기 (LEVEL3)
물고기 종류 별로 가장 큰 물고기의 ID(ID), 물고기 이름(FISH_NAME), 길이(LENGTH)를 출력
정렬은 물고기의 ID 오름차순
단, 물고기 종류별 가장 큰 물고기는 1마리만 있으며 10cm 이하의 물고기가 가장 큰 경우는 없습니다.
정답 코드
SELECT ID, FISH_NAME, LENGTH
FROM FISH_INFO I JOIN FISH_NAME_INFO N ON I.FISH_TYPE = N.FISH_TYPE
WHERE (I.FISH_TYPE, LENGTH) IN (SELECT FISH_TYPE, MAX(LENGTH)
FROM FISH_INFO
GROUP BY FISH_TYPE)
ORDER BY ID
MEMO
- SQL에서는 GROUP BY에 포함되지 않은 모든 열은 집계 함수와 함께 사용되거나, GROUP BY 절에 포함되어야 합니다. 즉, GROUP BY 절에 포함되지 않은 열을 집계함수 없이 SELECT에 사용하려고 할 때 문제가 발생합니다.
// 다음과 같은 에러 발생
실패 (1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'programmers.I.ID' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by")
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[MYSQL 21] 가격대 별 상품 개수 구하기 (0) | 2024.09.20 |
---|---|
[MYSQL 20] 조건에 맞는 아이템들의 가격의 총합 구하기 (1) | 2024.09.14 |
[MYSQL 18] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2024.09.12 |
[MYSQL 17] 부서별 평균 연봉 조회하기 (0) | 2024.09.09 |
[MYSQL 16] 조건에 맞는 사용자와 총 거래금액 조회하기 (1) | 2024.09.08 |