간략 정리
CASE
Id | Color |
1 | Red |
2 | Blue |
Null | Unspecified |
1 |
|
- ELSE를 생략할 경우에는 ELSE NULL이 자동으로 지정 WHEN절의 조건에 아무것도 부합하지 않은 데이터가 있는 경우 ELSE 절에 값을 지정해주지 않으면 해당 값은 자동으로 NULL값을 반환한다.
TABLE PIVOT
categoryid | price |
1 | 3 |
1 | 4 |
2 | 70 |
2 | 60 |
1 |
|
category1_avg_price | category2_avg_price |
3.5 | 65 |
- 세로로 표시되는 테이블 결과물을 가로로 보고싶을 때 사용하는 쿼리이다.
- CASE문을 이용하여 각각의 컬럼에 맞는 데이터만 출력하고 나머지는 null 값을 가지도록 하여, 각 컬럼에서 보고싶은 연산(COUNT, SUM, AVG 등등)의 결과를 보여준다.
해커랭크 문제풀이
Type of Triangle
-
Write a query identifying the type of each record in the TRIANGLES table using its three side lengths. Output one of the following statements for each record in the table:
- Equilateral: It’s a triangle with 3 sides of equal length.
- Isosceles: It’s a triangle with 2 sides of equal length.
- Scalene: It’s a triangle with 3 sides of differing lengths.
- Not A Triangle: The given values of A, B, and C don’t form a triangle.
풀이
1 |
|
리트코드 문제풀이
1179. Reformat Department Table
1 |
|
- Write an SQL query to reformat the table such that there is a department id column and a revenue column for each month.
- Return the result table in any order.
- The query result format is in the following example.
1 |
|
풀이
1 |
|
- case문에서 sum을 빠뜨렸었다.
- sum 함수의 사용 이유에 대해 araboza.
- Pivot 확실히 이해하기: Pivoting Data in SQL
- id를 세 가지만 표시하기 위해서, group by를 사용해줬는데 집계를 해주지 않으면, 나머지 값들이 무시되기 때문이다!