Chef.Yeon
Code Cook
Chef.Yeon
전체 방문자
오늘
어제
  • 분류 전체보기 (230)
    • 게임 개발 (1)
      • Unity (1)
    • Android (27)
      • Kotlin (19)
      • 우아한테크코스 5기 (4)
    • Language (11)
      • 파이썬 (3)
      • Java (7)
    • DB (2)
      • SQL (16)
    • Spring (25)
    • 코딩테스트 (56)
    • Git (1)
    • TIL (85)
    • DevOps (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 안드로이드
  • 프리코스
  • 코딩테스트
  • enum
  • 프로그래머스
  • java
  • spring
  • Android
  • 코틀린
  • til
  • Wil
  • 에라토스테네스의 체
  • webflux
  • 내림차순
  • 문자열
  • Docker
  • kibana
  • 레포지토리
  • 파이썬
  • 우아한테크코스
  • 다이나믹 프로그래밍
  • grafana
  • MariaDB
  • SQL
  • elasticsearch
  • kotlin
  • 백준
  • ec2
  • 코틀린 인 액션
  • rsocket

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Chef.Yeon

Code Cook

DB/SQL

[DB/SQL] CASE, WHEN, THEN, ELSE 사용하기

2023. 3. 21. 22:45

Case, When, Then, Else 는 다음과 같이 사용할 수 있습니다.

case when [조건식] then [반환값]
     else [일치하는 조건이 없는 경우 반환값] end

 

예시를 살펴보겠습니다.

 

유저의 point가 10000점 이상, 5000점 이상 10000미만, 5000점 미만인 경우로 나누어서, 새 필드에 값을 넣어주겠습니다.

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

위처럼 비교 연산자를 사용하여 조건을 걸어줄 수 도 있고, NULL 연산자나 산술 연산자를 사용해 여러 개의 조건을 줄 수도 있습니다.

 

위와 같은 테이블을 만들면, point의 범위에 따른 유저 수도 파악할 수 있지 않을까요?

select a.lv, count(a.lv) 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

 

With를 사용해서 따로 테이블을 정의해주면 보기 쉽게 작성할 수 있습니다.

with table1 as (
	select pu.point_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(*) as cnt from table1 a
group by a.lv
728x90

'DB > SQL' 카테고리의 다른 글

[프로그래머스/SQL] 과일로 만든 아이스크림 고르기  (0) 2023.03.22
[프로그래머스/SQL] 서울에 위치한 식당 목록 출력하기  (0) 2023.03.22
[SQL] SUBSTRING_INDEX, SUBSTRING 문자열 데이터 다루기  (0) 2023.03.21
[DB/SQL] With절을 사용하여 임시 테이블 생성하기  (0) 2023.03.21
[DB/SQL] SubQuery - Select, Where, From절에서 사용하기  (0) 2023.03.21
    'DB/SQL' 카테고리의 다른 글
    • [프로그래머스/SQL] 과일로 만든 아이스크림 고르기
    • [프로그래머스/SQL] 서울에 위치한 식당 목록 출력하기
    • [SQL] SUBSTRING_INDEX, SUBSTRING 문자열 데이터 다루기
    • [DB/SQL] With절을 사용하여 임시 테이블 생성하기
    Chef.Yeon
    Chef.Yeon
    보기 좋고 깔끔한 코드를 요리하기 위해 노력하고 있습니다.

    티스토리툴바