스터디/SQL

[MySQL] ch07_조건문(CASE)

skyggg3 2022. 3. 21. 23:19

본 글은 인프런의 '[백문이불여일타] 데이터 분석을 위한 중급 SQL'강의를 듣고 직접 실습한 내용입니다.

 

 

[백문이불여일타] 데이터 분석을 위한 중급 SQL - 인프런 | 강의

인프런 누적 수강생 8000명 이상, 풍부한 온/오프라인 강의 경험을 가진 데이터리안의 SQL 중급 강의. SQL 중급 이론을 배우고, 실습 문제를 함께 풀어봅니다., - 강의 소개 | 인프런...

www.inflearn.com

 

Dashboard | HackerRank

Join over 16 million developers in solving code challenges on HackerRank, one of the best ways to prepare for programming interviews.

www.hackerrank.com

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

  • CASE - 조건에 따라 값을 지정해주는 구문
CASE 
		WHEN 조건1 THEN 값1
		WHEN 조건2 THEN 값2
		ELSE 값3
END

 


해커랭크 문제풀이

 

1. Type of Triangle

-- 순서를 유의해서 작성해야 함
SELECT CASE
            WHEN A = B AND B = C THEN 'Equilateral'
            WHEN A+B <= C OR A+C <= B OR B+C <=A THEN 'Not A Triangle'
            WHEN A = B OR B = C OR A = C THEN 'Isosceles'
            ELSE 'Scalene'
       END
FROM Triangles;

 

 

리트코드 문제풀이

 

1179. Reformat Department Table

SELECT id
      ,SUM(CASE WHEN month = 'JAN' THEN revenue ELSE NULL END) AS 'JAN_Revenue'
      ,SUM(CASE WHEN month = 'Feb' THEN revenue ELSE NULL END)AS 'Feb_Revenue'
      ,SUM(CASE WHEN month = 'Mar' THEN revenue ELSE NULL END)AS 'Mar_Revenue'
      ,SUM(CASE WHEN month = 'Apr' THEN revenue ELSE NULL END)AS 'Apr_Revenue'
      ,SUM(CASE WHEN month = 'May' THEN revenue ELSE NULL END)AS 'May_Revenue'
      ,SUM(CASE WHEN month = 'Jun' THEN revenue ELSE NULL END)AS 'Jun_Revenue'
      ,SUM(CASE WHEN month = 'Jul' THEN revenue ELSE NULL END)AS 'Jul_Revenue'
      ,SUM(CASE WHEN month = 'Aug' THEN revenue ELSE NULL END)AS 'Aug_Revenue'
      ,SUM(CASE WHEN month = 'Sep' THEN revenue ELSE NULL END)AS 'Sep_Revenue'
      ,SUM(CASE WHEN month = 'Oct' THEN revenue ELSE NULL END)AS 'Oct_Revenue'
      ,SUM(CASE WHEN month = 'Nov' THEN revenue ELSE NULL END)AS 'Nov_Revenue'
      ,SUM(CASE WHEN month = 'Dec' THEN revenue ELSE NULL END)AS 'Dec_Revenue'
FROM Department
GROUP BY id;