Skip to content

Commit 01f7052

Browse files
committed
[level 3] Title: 물고기 종류 별 대어 찾기, Time: , Memory: undefined -BaekjoonHub
1 parent a0a1ade commit 01f7052

File tree

2 files changed

+227
-0
lines changed

2 files changed

+227
-0
lines changed
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
# [level 3] 물고기 종류 별 대어 찾기 - 293261
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/293261)
4+
5+
### 성능 요약
6+
7+
메모리: undefined, 시간:
8+
9+
### 구분
10+
11+
코딩테스트 연습 > SUM, MAX, MIN
12+
13+
### 채점결과
14+
15+
합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2025년 11월 11일 09:36:32
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+
<p><code>FISH_NAME_INFO</code> 테이블은 물고기의 이름에 대한 정보를 담고 있습니다. <code>FISH_NAME_INFO</code> 테이블의 구조는 다음과 같으며, <code>FISH_TYPE</code>, <code>FISH_NAME</code> 은 각각 물고기의 종류(숫자), 물고기의 이름(문자) 입니다.</p>
56+
<table class="table">
57+
<thead><tr>
58+
<th>Column name</th>
59+
<th>Type</th>
60+
<th>Nullable</th>
61+
</tr>
62+
</thead>
63+
<tbody><tr>
64+
<td>FISH_TYPE</td>
65+
<td>INTEGER</td>
66+
<td>FALSE</td>
67+
</tr>
68+
<tr>
69+
<td>FISH_NAME</td>
70+
<td>VARCHAR</td>
71+
<td>FALSE</td>
72+
</tr>
73+
</tbody>
74+
</table>
75+
<hr>
76+
77+
<h5>문제</h5>
78+
79+
<p>물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요.</p>
80+
81+
<p>물고기의 ID 컬럼명은 <code>ID</code>, 이름 컬럼명은 <code>FISH_NAME</code>, 길이 컬럼명은 <code>LENGTH</code>로 해주세요.<br>
82+
결과는 물고기의 ID에 대해 오름차순 정렬해주세요.<br>
83+
단, 물고기 종류별 가장 큰 물고기는 1마리만 있으며 10cm 이하의 물고기가 가장 큰 경우는 없습니다.</p>
84+
85+
<hr>
86+
87+
<h5>예시</h5>
88+
89+
<p>예를 들어 <code>FISH_INFO</code> 테이블이 다음과 같고</p>
90+
<table class="table">
91+
<thead><tr>
92+
<th>ID</th>
93+
<th>FISH_TYPE</th>
94+
<th>LENGTH</th>
95+
<th>TIME</th>
96+
</tr>
97+
</thead>
98+
<tbody><tr>
99+
<td>0</td>
100+
<td>0</td>
101+
<td>30</td>
102+
<td>2021/12/04</td>
103+
</tr>
104+
<tr>
105+
<td>1</td>
106+
<td>0</td>
107+
<td>50</td>
108+
<td>2020/03/07</td>
109+
</tr>
110+
<tr>
111+
<td>2</td>
112+
<td>0</td>
113+
<td>40</td>
114+
<td>2020/03/07</td>
115+
</tr>
116+
<tr>
117+
<td>3</td>
118+
<td>1</td>
119+
<td>20</td>
120+
<td>2022/03/09</td>
121+
</tr>
122+
<tr>
123+
<td>4</td>
124+
<td>1</td>
125+
<td>NULL</td>
126+
<td>2022/04/08</td>
127+
</tr>
128+
<tr>
129+
<td>5</td>
130+
<td>2</td>
131+
<td>13</td>
132+
<td>2021/04/28</td>
133+
</tr>
134+
<tr>
135+
<td>6</td>
136+
<td>0</td>
137+
<td>60</td>
138+
<td>2021/07/27</td>
139+
</tr>
140+
<tr>
141+
<td>7</td>
142+
<td>0</td>
143+
<td>55</td>
144+
<td>2021/01/18</td>
145+
</tr>
146+
<tr>
147+
<td>8</td>
148+
<td>2</td>
149+
<td>73</td>
150+
<td>2020/01/28</td>
151+
</tr>
152+
<tr>
153+
<td>9</td>
154+
<td>1</td>
155+
<td>73</td>
156+
<td>2021/04/08</td>
157+
</tr>
158+
<tr>
159+
<td>10</td>
160+
<td>2</td>
161+
<td>22</td>
162+
<td>2020/06/28</td>
163+
</tr>
164+
<tr>
165+
<td>11</td>
166+
<td>2</td>
167+
<td>17</td>
168+
<td>2022/12/23</td>
169+
</tr>
170+
</tbody>
171+
</table>
172+
<p><code>FISH_NAME_INFO</code> 테이블이 다음과 같다면</p>
173+
<table class="table">
174+
<thead><tr>
175+
<th>FISH_TYPE</th>
176+
<th>FISH_NAME</th>
177+
</tr>
178+
</thead>
179+
<tbody><tr>
180+
<td>0</td>
181+
<td>BASS</td>
182+
</tr>
183+
<tr>
184+
<td>1</td>
185+
<td>SNAPPER</td>
186+
</tr>
187+
<tr>
188+
<td>2</td>
189+
<td>ANCHOVY</td>
190+
</tr>
191+
</tbody>
192+
</table>
193+
<p>'BASS' 중 가장 큰 물고기는 60cm 로 물고기 ID 가 6이고, 'SNAPPER' 중 가장 큰 물고기는 73cm 로 물고기 ID가 9입니다. 'ANCHOVY' 중 가장 큰 물고기는 73cm 로 물고기 ID가 8입니다. 따라서 물고기 ID(ID) 에 대해 오름차순 정렬한다면 결과는 다음과 같습니다.</p>
194+
<table class="table">
195+
<thead><tr>
196+
<th>ID</th>
197+
<th>FISH_NAME</th>
198+
<th>LENGTH</th>
199+
</tr>
200+
</thead>
201+
<tbody><tr>
202+
<td>6</td>
203+
<td>BASS</td>
204+
<td>60</td>
205+
</tr>
206+
<tr>
207+
<td>8</td>
208+
<td>ANCHOVY</td>
209+
<td>73</td>
210+
</tr>
211+
<tr>
212+
<td>9</td>
213+
<td>SNAPPER</td>
214+
<td>73</td>
215+
</tr>
216+
</tbody>
217+
</table>
218+
219+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
SELECT FI.ID, FNI.FISH_NAME, FI.LENGTH
2+
FROM FISH_INFO FI
3+
JOIN FISH_NAME_INFO FNI ON FI.FISH_TYPE = FNI.FISH_TYPE
4+
WHERE (FI.FISH_TYPE, FI.LENGTH) IN (
5+
SELECT FISH_TYPE, MAX(LENGTH)
6+
FROM FISH_INFO
7+
GROUP BY FISH_TYPE
8+
);

0 commit comments

Comments
 (0)