일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- coding
- python
- 프로그래머스
- tableau
- AARRR
- counter
- collections
- itertools
- lambda
- Growth hacking
- level4
- Level2
- lv4
- 완전탐색
- LeetCode
- sql
- coding test
- 조합
- Queue
- programmers
- time complexity
- 코딩
- 코테
- cte
- import re
- mysql
- 코딩테스트
- 파이썬
- Stack
- join
Archives
- Today
- Total
ror_coding
[Programmers] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 - 298519 본문
728x90
HAVING 절에 AVG ( CASE WHEN ~ END ) >= 33 가 가능하다!
여기서 10 이하나 NULL 값을 10으로 대체해주는 코드가 될 줄이야..
Question
FISH_INFO에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력하는 SQL문을 작성해주세요. 결과는 물고기 종류에 대해 오름차순으로 정렬해주시고, 10cm이하의 물고기들은 10cm로 취급하여 평균 길이를 구해주세요.
컬럼명은 물고기의 종류 'FISH_TYPE', 잡은 수 'FISH_COUNT', 최대 길이 'MAX_LENGTH'로 해주세요.
Point
- HAVING AVG ( CASE WHEN ~ END ) >= 33
Code (After 25.06.)
SELECT COUNT(*) AS FISH_COUNT
, MAX(LENGTH) AS MAX_LENGTH
, FISH_TYPE
FROM FISH_INFO
GROUP BY 3
HAVING AVG(IFNULL(LENGTH, 10)) >= 33
ORDER BY 3
Code (Before)
SELECT COUNT(*) AS FISH_COUNT,
MAX(LENGTH) AS MAX_LENGTH,
FISH_TYPE
FROM FISH_INFO
GROUP BY FISH_TYPE
HAVING AVG(CASE
WHEN LENGTH > 10 THEN LENGTH
ELSE 10
END) >= 33
ORDER BY FISH_TYPE

now me
On my github
728x90
'Coding Test > SQL' 카테고리의 다른 글
[Programmers] 대장균의 크기에 따라 분류하기 2 - 301649 (0) | 2024.10.13 |
---|---|
[Programmers] 물고기 종류 별 대어 찾기 - 293261 (0) | 2024.10.12 |
[Programmers] 대장균들의 자식의 수 구하기 - 299305 (0) | 2024.10.12 |
[Programmers] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 - 151139 (1) | 2024.10.06 |
[Programmers] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 - 157340 (2) | 2024.10.06 |