From 4ebd3d6060a463f0d935c07bd089d053cca12e6b Mon Sep 17 00:00:00 2001 From: SSUM <116950962+ssum21@users.noreply.github.com> Date: Wed, 5 Mar 2025 20:51:55 +0900 Subject: [PATCH] =?UTF-8?q?[level=203]=20Title:=20=ED=8A=B9=EC=A0=95=20?= =?UTF-8?q?=EC=A1=B0=EA=B1=B4=EC=9D=84=20=EB=A7=8C=EC=A1=B1=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=AC=BC=EA=B3=A0=EA=B8=B0=EB=B3=84=20=EC=88=98?= =?UTF-8?q?=EC=99=80=20=EC=B5=9C=EB=8C=80=20=EA=B8=B8=EC=9D=B4=20=EA=B5=AC?= =?UTF-8?q?=ED=95=98=EA=B8=B0,=20Time:=20,=20Memory:=20undefined=20-Baekjo?= =?UTF-8?q?onHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md | 130 ++++++++++++++++++ .../특정 조건을 만족하는 물고기별 수와 최대 길이 구하기.sql | 18 +++ 2 files changed, 148 insertions(+) create mode 100644 프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/README.md create mode 100644 프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/특정 조건을 만족하는 물고기별 수와 최대 길이 구하기.sql diff --git a/프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/README.md b/프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/README.md new file mode 100644 index 0000000..0611ae2 --- /dev/null +++ b/프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/README.md @@ -0,0 +1,130 @@ +# [level 3] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 - 298519 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/298519) + +### 성능 요약 + +메모리: undefined, 시간: + +### 구분 + +코딩테스트 연습 > GROUP BY + +### 채점결과 + +합계: 100.0 / 100.0 + +### 제출 일자 + +2025년 03월 05일 20:51:53 + +### 문제 설명 + +

낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Column nameTypeNullable
IDINTEGERFALSE
FISH_TYPEINTEGERFALSE
LENGTHFLOATTRUE
TIMEDATEFALSE
+

단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다.

+ +
+ +
문제
+ +

FISH_INFO에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력하는 SQL문을 작성해주세요. 결과는 물고기 종류에 대해 오름차순으로 정렬해주시고, 10cm이하의 물고기들은 10cm로 취급하여 평균 길이를 구해주세요.

+ +

컬럼명은 물고기의 종류 'FISH_TYPE', 잡은 수 'FISH_COUNT', 최대 길이 'MAX_LENGTH'로 해주세요.

+ +
+ +
예시
+ +

예를 들어 FISH_INFO 테이블이 다음과 같다면

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDFISH_TYPELENGTHTIME
00302021/12/04
10502020/03/07
20402020/03/07
31302022/03/09
41NULL2022/04/08
52322020/04/28
+

물고기 종류가 0인 물고기들의 평균 길이는 (30 + 50 + 40) / 3 = 40cm 이고 물고기 종류가 1인 물고기들의 평균 길이는 (30 + 10) / 2 = 20cm 이며, 물고기 종류(가 2인 물고기들의 평균 길이는 (32) / 1 = 32cm 입니다. 따라서 평균길이가 33cm 인 물고기 종류는 0 이므로, 총 잡은 수는 3마리, 최대 길이는 50cm 이므로 결과는 다음과 같아야 합니다.

+ + + + + + + + + + + + + +
FISH_COUNTMAX_LENGTHFISH_TYPE
3500
+ +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git a/프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/특정 조건을 만족하는 물고기별 수와 최대 길이 구하기.sql b/프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/특정 조건을 만족하는 물고기별 수와 최대 길이 구하기.sql new file mode 100644 index 0000000..ef3cdd4 --- /dev/null +++ b/프로그래머스/3/298519. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기/특정 조건을 만족하는 물고기별 수와 최대 길이 구하기.sql @@ -0,0 +1,18 @@ +-- 코드를 작성해주세요 +WITH FISH_AVG AS( + SELECT FISH_TYPE, AVG( + CASE + WHEN LENGTH <= 10 OR LENGTH IS NULL THEN 10 + ELSE LENGTH + END + ) AS FAV + FROM FISH_INFO + GROUP BY FISH_TYPE +) + +SELECT COUNT(*) AS FISH_COUNT, MAX(FI.LENGTH) AS MAX_LENGTH, FI.FISH_TYPE +FROM FISH_INFO AS FI +JOIN FISH_AVG AS FA ON FI.FISH_TYPE = FA.FISH_TYPE +WHERE FA.FAV >= 33 +GROUP BY FI.FISH_TYPE +ORDER BY FI.FISH_TYPE ASC