728x90
반응형
특정 조건을 만족하는 물고기별 수와 최대 길이 구하기
- ..? 뭐가 문제인 걸까..?
select count(*) as FISH_COUNT,
avg(length) as MAX_LENGTH, FISH_TYPE
from FISH_INFO
where length in (select case when length <= 10 then 10 else length end as length
from FISH_INFO )
group by FISH_TYPE
having avg(length) >= 33
order by FISH_TYPE;
- 위처럼 하면, 10으로 길이가 다 고정되어서 나올 수 있음.
그래서 아래처럼 having절에 바로 case when then 넣었음.
- 또, 문제를 잘못 이해해서 맥스 렝쓰를 구해야 하는데 평균을 출력하는 식으로 썼음.
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 10 ELSE length END) >= 33
ORDER BY FISH_TYPE;
- but, 60점으로 100점이 안 나옮..
........ 문제 똑바로 안 읽냐.. null이잖아. 10cm이하는..
SELECT COUNT(*) AS FISH_COUNT,
MAX(LENGTH) AS MAX_LENGTH,
FISH_TYPE
FROM FISH_INFO
GROUP BY FISH_TYPE
HAVING AVG(IF(IFNULL(LENGTH, 0) <= 10, 10, LENGTH)) >= 33
ORDER BY FISH_TYPE;
- sql도 if 절 사용 가능함. if(조건문, 해당할 때 값, 해당 칼럼)
- 일단 null을 0으로 바꿔서 비교가 되게 할 것.
- 그리고 10보다 작으면 10 넣어줌.
728x90
반응형
'Data Science > SQL' 카테고리의 다른 글
[프로그래머스 sql] substring()에 익숙해질 것. (0) | 2025.03.31 |
---|---|
[프로그래머스 sql] select에서도 like 조건문 가능 (0) | 2025.03.31 |
[프로그래머스 sql] datetime에서 시간 제외 date() (0) | 2025.03.30 |
[프로그래머스 sql] count()는 null 못셈 (0) | 2025.03.20 |
[프로그래머스 sql] 비트연산.. 너무 익숙해지지가 않음.. (0) | 2025.03.20 |