Skip to content

Commit bae346f

Browse files
committed
[level 3] Title: 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기, Time: , Memory: undefined -BaekjoonHub
1 parent 2bacb7e commit bae346f

2 files changed

Lines changed: 135 additions & 0 deletions

File tree

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# [level 3] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 - 298519
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/298519)
4+
5+
### 성능 요약
6+
7+
메모리: undefined, 시간:
8+
9+
### 구분
10+
11+
코딩테스트 연습 > GROUP BY
12+
13+
### 채점결과
14+
15+
합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2026년 05월 08일 00:14:59
20+
21+
### 문제 설명
22+
23+
<p>낚시앱에서 사용하는 <code>FISH_INFO</code> 테이블은 잡은 물고기들의 정보를 담고 있습니다. <code>FISH_INFO</code> 테이블의 구조는 다음과 같으며 <code>ID</code>, <code>FISH_TYPE</code>, <code>LENGTH</code>, <code>TIME</code>은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다. </p>
24+
<table class="table">
25+
<thead><tr>
26+
<th>Column name</th>
27+
<th>Type</th>
28+
<th>Nullable</th>
29+
</tr>
30+
</thead>
31+
<tbody><tr>
32+
<td>ID</td>
33+
<td>INTEGER</td>
34+
<td>FALSE</td>
35+
</tr>
36+
<tr>
37+
<td>FISH_TYPE</td>
38+
<td>INTEGER</td>
39+
<td>FALSE</td>
40+
</tr>
41+
<tr>
42+
<td>LENGTH</td>
43+
<td>FLOAT</td>
44+
<td>TRUE</td>
45+
</tr>
46+
<tr>
47+
<td>TIME</td>
48+
<td>DATE</td>
49+
<td>FALSE</td>
50+
</tr>
51+
</tbody>
52+
</table>
53+
<p>단, 잡은 물고기의 길이가 10cm 이하일 경우에는 <code>LENGTH</code> 가 NULL 이며, <code>LENGTH</code> 에 NULL 만 있는 경우는 없습니다.</p>
54+
55+
<hr>
56+
57+
<h5>문제</h5>
58+
59+
<p><code>FISH_INFO</code>에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력하는 SQL문을 작성해주세요. 결과는 물고기 종류에 대해 오름차순으로 정렬해주시고, 10cm이하의 물고기들은 10cm로 취급하여 평균 길이를 구해주세요.</p>
60+
61+
<p>컬럼명은 물고기의 종류 'FISH_TYPE', 잡은 수 'FISH_COUNT', 최대 길이 'MAX_LENGTH'로 해주세요.</p>
62+
63+
<hr>
64+
65+
<h5>예시</h5>
66+
67+
<p>예를 들어 <code>FISH_INFO</code> 테이블이 다음과 같다면</p>
68+
<table class="table">
69+
<thead><tr>
70+
<th>ID</th>
71+
<th>FISH_TYPE</th>
72+
<th>LENGTH</th>
73+
<th>TIME</th>
74+
</tr>
75+
</thead>
76+
<tbody><tr>
77+
<td>0</td>
78+
<td>0</td>
79+
<td>30</td>
80+
<td>2021/12/04</td>
81+
</tr>
82+
<tr>
83+
<td>1</td>
84+
<td>0</td>
85+
<td>50</td>
86+
<td>2020/03/07</td>
87+
</tr>
88+
<tr>
89+
<td>2</td>
90+
<td>0</td>
91+
<td>40</td>
92+
<td>2020/03/07</td>
93+
</tr>
94+
<tr>
95+
<td>3</td>
96+
<td>1</td>
97+
<td>30</td>
98+
<td>2022/03/09</td>
99+
</tr>
100+
<tr>
101+
<td>4</td>
102+
<td>1</td>
103+
<td>NULL</td>
104+
<td>2022/04/08</td>
105+
</tr>
106+
<tr>
107+
<td>5</td>
108+
<td>2</td>
109+
<td>32</td>
110+
<td>2020/04/28</td>
111+
</tr>
112+
</tbody>
113+
</table>
114+
<p>물고기 종류가 0인 물고기들의 평균 길이는 (30 + 50 + 40) / 3 = 40cm 이고 물고기 종류가 1인 물고기들의 평균 길이는 (30 + 10) / 2 = 20cm 이며, 물고기 종류(가 2인 물고기들의 평균 길이는 (32) / 1 = 32cm 입니다. 따라서 평균길이가 33cm 인 물고기 종류는 0 이므로, 총 잡은 수는 3마리, 최대 길이는 50cm 이므로 결과는 다음과 같아야 합니다. </p>
115+
<table class="table">
116+
<thead><tr>
117+
<th>FISH_COUNT</th>
118+
<th>MAX_LENGTH</th>
119+
<th>FISH_TYPE</th>
120+
</tr>
121+
</thead>
122+
<tbody><tr>
123+
<td>3</td>
124+
<td>50</td>
125+
<td>0</td>
126+
</tr>
127+
</tbody>
128+
</table>
129+
130+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
SELECT COUNT(*) as FISH_COUNT, MAX(IFNULL(LENGTH, 10)) as MAX_LENGTH, FISH_TYPE
2+
FROM FISH_INFO
3+
GROUP BY FISH_TYPE
4+
HAVING AVG(IFNULL(LENGTH, 10)) >= 33
5+
ORDER BY FISH_TYPE

0 commit comments

Comments
 (0)