자두의 데브로그

[MySQL] 프로그래머스 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 본문

코딩테스트/SQL

[MySQL] 프로그래머스 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기

왕자두 2024. 10. 11. 17:51

https://school.programmers.co.kr/learn/courses/30/lessons/298519

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

IFNULL(A, B) 과 NULLIF(A, B)이 다르다는 사실... 알고 계신가요?

NULLIF 밖에 몰랐었는데 이 문제 풀면서 IFNULL에 대해서도 처음 알게 되어서 정리해보겠숩니다.

 

  • NULLIF(A, B)
    • A == B 인 경우, null 반환하고 A != B면 A 반환
    • if(a, b)부터 생각하자  a == b 인 경우에 대해서 null 반환, 아니라면 a 반환 이라고 이해합시다.
  • IFNULL(A, B)
    • A가 null이면 B 반환
    • ifnull(a)부터 생각하자. a가 null이라면 b
-- 코드를 작성해주세요
select count(*) as FISH_COUNT, max(ifnull(length, 10)) as MAX_LENGTH, FISH_TYPE
from FISH_INFO
group by FISH_TYPE
having avg(ifnull(length, 10)) >= 33
order by FISH_TYPE;

 

여기서 null이라면 10으로 바꿔줘야되니까 ifnull 사용!