문제
MYSQL
내가 작성한 정답
select count(id) fish_count, max(length) max_length, fish_type
from fish_info
group by fish_type
having avg(ifnull(length,10)) >= 33
order by 3 asc
내가 이전에 작성했던 정답
SELECT COUNT(ID) FISH_COUNT ,MAX(LENGTH) MAX_LENGTH ,FISH_TYPE
FROM (SELECT ID,IFNULL(LENGTH,10) LENGTH, FISH_TYPE FROM FISH_INFO) TB
GROUP BY FISH_TYPE
HAVING AVG(LENGTH) >= 33
ORDER BY 3 ASC
집계함수 안에 웬만한 함수나 표현식 사용 가능
NULL 처리 | IFNULL, COALESCE, NVL |
조건 처리 | CASE WHEN, IF (MySQL) |
수학 연산 | ROUND, CEIL, FLOOR, ABS |
문자열 처리 | LENGTH, SUBSTRING, LOWER, UPPER |
날짜 처리 | YEAR, MONTH, DAY, DATEDIFF |
Share article