반응형
decode( )는 조건문의 조건식에
부등호 사용이 안되지만
case when을 사용하면
부등호 사용이 가능하다.
if-else와 같은 것이다.
case when은 모든 sql이 다 가지고 있기 때문에
decode를 모르고
case when만 알고 있어도 괜찮다!
-- student 테이블에서 비만인 그룹의 몸무게 평균과 마른 그룹의 몸무게 평균을 구하시오
-- 60kg 이상 (비만), 60kg 미만(마른)
SELECT round(avg(weight), 2) 평균, decode(g1, 1, '비만', '마른') 비만도
FROM (
SELECT name, weight, floor(weight/60) g1
FROM student
ORDER BY weight
)
GROUP BY g1;
-- CASE WHEN으로 다시 풀어보기
SELECT round(avg(weight), 2) 평균, 비만도
FROM (
SELECT name, weight, case when weight >= 60 then '비만'
else '마름' end 비만도
FROM student
ORDER BY weight
)
GROUP BY 비만도;
데이터베이스에는 메서드가 매우 많으니
큰 틀을 알고 가야 한다.
MSSQL(고급 함수 많이 들고 있음)
오라클(고급 함수 많이 들고 있음)
고급 함수
: 계층 쿼리(부모 찾기),
파티션,
통계 함수,
순위 함수 등등
MySQL(오픈 진형 - 공짜)
-5.7 버전일 때 오라클이 인수
---> 이후 6.0 ~ 8.0(현재 가장 많이 씀)
오라클의 고급 함수가
MySQL에 흡수되며 유료로 바뀜
MariaDB(오픈 진형 - 공짜)
MySQL이 5.7 버전일 때
인수당할 시기에
MySQL의 개발자가 나와
새로 만든 DB
MySQL 5.7과 똑같음
[출처]
https://cafe.naver.com/metacoding
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9
반응형