2025.06.18(Wed.)
[오늘의 알고리즘 1문제] - 프로그래머스 MySQL
<잡은 물고기의 평균 길이 구하기>
잡은 물고기의 평균 길이를 출력하는 SQL문을 작성해주세요.
평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 해주세요.
평균 길이는 소수점 3째자리에서 반올림하며, 10cm 이하의 물고기들은 10cm 로 취급하여 평균 길이를 구해주세요.
10cm 이하의 물고기는 10cm 로 취급하므로 총 물고기의 길이의 합은 30 + 50 + 40 + 20 + 10 +10 = 160 이며 총 물고기의 수는 6마리이므로 잡은 물고기의 평균 길이는 160/6 = 26.666.. 입니다. 이를 소수점 3째자리에서 반올림하면 26.67 이므로 결과는 다음과 같아야 합니다.
| AVERAGE_LENGTH |
| 26.67 |
<내가 작성한 코드>
select round(avg(a.length),2) as average_length
from
(
select
case
when length is null then 10
when length <=10 then 10
else length
end as length
from fish_info
) a
서브쿼리로 코드를 작성하였다.
정답입니당.
<복습할 내용>
1. round(값, 소수점)
round 함수의 소수점을 입력할 때는 마지막 반올림 하는 소수점 자리의 위치값으로 적어줘야 한다.
ex) 소수점 3째자리에서 반올림 해주세요 = round(값, 2)
2. if(조건, 조건이 참일 경우, 조건이 거짓일 경우)
ex) 조건 : 18살 이하인 경우, 조건이 참일 경우 : 미성년자를 반환, 조건이 거짓일 경우 : 나이를 반환
select name,
if(age<=18, '미성년자', age) as age_status
from users
3. case when 사용시 유의 사항
탭으로 간격을 잘 맞춰주어야 정상작동 하며, case when으로 시작하고 끝에 꼭 end로 끝내야 한다.
ex)
select
case
when
end'Develop > Daily Algorithm Practice 공략집' 카테고리의 다른 글
| [오늘의 알고리즘 1문제] - <[PCCE 기출문제] 3번 / 수 나누기> (1) | 2025.07.11 |
|---|---|
| [오늘의 알고리즘 1문제] - <Python 개발자 찾기> (0) | 2025.06.27 |
| [오늘의 알고리즘 1문제] - <잡은 물고기 중 가장 큰 물고기의 길이 구하기> (0) | 2025.06.17 |
| [오늘의 알고리즘 1문제] - <중성화 여부 파악하기> (0) | 2025.02.25 |
| [오늘의 알고리즘 1문제] - <조건에 맞는 회원 수 구하기> (0) | 2025.02.20 |