1. case 사용법
select pu.user_id, pu.point,
(case when pu.point > 10000 then '1만 이상'
when pu.point > 5000 then '5천 이상'
else '5천 미만' end) as lv
from point_users pu
2. 구간별 몇 명이 있는지 조회
select a.lv, count(*) from (
select pu.user_id, pu.point,
(case when pu.point > 10000 then '1만 이상'
when pu.point > 5000 then '5천 이상'
else '5천 미만' end) as lv
from point_users pu
) a
group by a.lv
3. with절 사용 (with절 사용 시 전체 선택해서 실행시켜야 함) // 2번을 3번으로 코드 정리한 것
with table1 as (
select pu.user_id, pu.point,
(case when pu.point > 10000 then '1만 이상'
when pu.point > 5000 then '5천 이상'
else '5천 미만' end) as lv
from point_users pu
)
select a.lv, count(*) from table1 a
group by a.lv
4. quiz
4-1) [퀴즈] 평균 이상 포인트를 가지고 있으면 '잘 하고 있어요' / 낮으면 '열심히 합시다!' 표시하기!
select pu.user_id,
(case when pu.point > (select avg(point) from point_users pu) then '잘하고있어요'
else '조금만 더 화이팅' end) as mesg
from point_users pu;
4-2) [퀴즈] 이메일 도메인별 유저의 수 세어보기
4-2-1) 도메인 출력
select email, SUBSTRING_INDEX(email, '@', -1) as domain from users;
4-2-2)
select domain, count(*) from (
select email, SUBSTRING_INDEX(email, '@', -1) as domain from users
) a
group by domain;
'프로그래밍 > SQL' 카테고리의 다른 글
SQL - Subquery (스파르타코딩 - 엑셀보다 쉬운 SQL 4주차) (0) | 2022.04.04 |
---|---|
SQL - Join (스파르타코딩 - 엑셀보다 쉬운 SQL 3주차) (0) | 2022.03.24 |
SQL - Group by, Order by, Sum, Round, Alias (스파르타코딩 - 엑셀보다 쉬운 SQL 2주차) (0) | 2022.03.23 |
SQL 문법 (스파르타코딩 - 엑셀보다 쉬운 SQL 1주차) (0) | 2022.03.21 |