CASE WHEN THEN ELSE END, MAX

Jinmin Kim·2021년 6월 18일
0

case when then else end 사용

간단하게 생각하자면
case -> {
when -> if
else -> else
end -> }

select * from (
	select AA.a, b, c from (
	select 
	case 			     // {
		when b = 'aaaaa' then 'a'  //if( b = 'aaaaa') return a
		when b = 'bbbbb' then 'b' //if( b = 'bbbbb') return b
		else 'c'  		//else
	END as b, 			 //}
	d
	from temp where (d, b) IN (SELECT DISTINCT MAX(b) over (partition by c) as c, b
	FROM temp)
	) AA left outer join temp1 BB on AA.d = BB.d
) a where e = 'b'

max over partition by

group by와 비슷하게 그룹을 지어줄수있으나,
만약 MAX를 사용했을때 Select안에 있는 값들을 다 group by로 넣어줘야하는 반면
partition by 는 해당하는 하나로 그룹을 지어서 Count나 Max를 사용하게 만들어준다

SELECT DISTINCT MAX(b) over (partition by c) as c, b
FROM temp
profile
Let's do it developer

0개의 댓글

관련 채용 정보