2024. 9. 23. 18:00ㆍSQL 고득점 Kit/SUM, MAX, MIN
https://school.programmers.co.kr/learn/courses/30/lessons/298515
문제 설명
낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다.
FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다.
Column name | Type | Nullable |
ID | INTEGER | FALSE |
FISH_TYPE | INTEGER | FALSE |
LENGTH | FLOAT | TRUE |
TIME | DATE | FALSE |
단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다.
문제
FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문을 작성해주세요.
- 이 때 컬럼명은 'MAX_LENGTH' 로 지정해주세요.
예시
예를 들어 FISH_INFO 테이블이 다음과 같다면
ID | FISH_TYPE | LENGTH | TIME |
0 | 0 | 13.37 | 2021/12/04 |
1 | 0 | 50.00 | 2020/03/07 |
2 | 0 | 40.00 | 2020/03/07 |
3 | 1 | 43.33 | 2022/03/09 |
4 | 1 | NULL | 2022/04/08 |
5 | 2 | 32.00 | 2020/04/28 |
가장 큰 물고기의 길이는 50cm 이므로 결과는 다음과 같아야 합니다.
MAX_LENGTH |
50.00cm |
잡은 물고기 중 가장 큰 물고기의 길이에 cm를 붙여서 출력하는 문제입니다.
물고기 종류별로 나눠서 출력하는 것도 아니기 때문에, 바로 MAX 함수를 사용해서 가장 큰 LENGTH를 찾아내면 됩니다.
GROUP BY가 없더라도 기본적으로 1개의 그룹이 있다고 생각하면 됩니다.
가장 큰 LENGTH를 찾는다면, 이제는 CONCAT을 사용해서 cm를 붙여주기만 하면 됩니다.
정답 코드를 작성해보겠습니다.
SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH
FROM FISH_INFO;
가장 큰 길이를 MAX(LENGTH)를 사용해서 구하고, 이후 cm를 CONCAT 함수를 사용해 붙여주었습니다.
컬럼명을 MAX_LENGTH로 해야 하기 때문에 AS를 사용해 에일리어싱을 해주었습니다.
'SQL 고득점 Kit > SUM, MAX, MIN' 카테고리의 다른 글
[SUM, MAX, MIN] 연도별 대장균 크기의 편차 구하기 (0) | 2024.09.24 |
---|---|
[SUM, MAX, MIN] 물고기 종류 별 대어 찾기 (0) | 2024.09.22 |
[SUM, MAX, MIN] 조건에 맞는 아이템들의 가격의 총합 구하기 (0) | 2024.09.21 |
[SUM, MAX, MIN] 동물 수 구하기 (0) | 2024.09.20 |
[SUM, MAX, MIN] 중복 제거하기 (0) | 2024.09.19 |