Shonny Data
SQL 코드카타 - WITH ~AS 구문 / NULL 값 주기 / UNION 본문
SQL 코드카타
진행과정
SQLD 코드카타를 풀다보면 풀이를 보고 스스로 득해야 하는 문제들이 있다.
다른 사람들은 어떻게 푸는지 궁금하다..
오늘도 새로운 개념을 하나 알았다.
다시보기
① WITH ___ AS ( )
○ 문제에서 하나의 조건을 먼저 해결 후 두개의 테이블에서 해당 결과를 조회하는 거라면,
WITH 문을 통해서 가상의 테이블 값을 계산하는 것이 좋다.
- WITH 문에서 원하는 컬럼을 추출한 후, 나머지 두 테이블을 JOIN 으로 연결하여 WITH에서 나온 테이블과 INNER JOIN 하여 데이터 추출
- JOIN 할 때 USING( ) 을 사용하기도 함
WITH BEST_MEMBER AS
( SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
LIMIT 1
)
SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d')
FROM MEMBER_PROFILE
INNER JOIN REST_REVIEW USING(MEMBER_ID)
INNER JOIN BEST_MEMBER USING(MEMBER_ID)
ORDER BY 3 ASC, 2 ASC
② USER_ID를 NULL값을 주어라
○ NULL AS USER_ID
- 두 테이블을 합치는 상황에서 하나의 테이블에 USER_ID 컬럼이 없는 상황이라면 NULL값을 주어 컬럼을 생성해서 JOIN으로 테이블 합치기
③ UNION ALL, UNION DISTINCT
○ UNION
- SELCT * FROM 구문 두개를 위아래로 놓고 가운데 작성하여 합치는 함수
SELECT *
FROM ANIMAL_INS
UNION ALL
SELECT *
FROM ANIMAL_OUT
○ UNION DISTINCT
- 위와 동일하게 사용하되, 동일한 항목은 하나로 중첩하여 보여주는 함수
'Sparta_coding_club > SQL 코드카타' 카테고리의 다른 글
도식화 연습 - SQL 코드카타 #1 ~ #15 (0) | 2024.01.08 |
---|---|
SQL 코드카타 - 변수지정 / SET 함수 / WITH RECURSIVE / 재귀함수 (2) | 2024.01.02 |
SQL 코드카타 - 서브쿼리 활용 (우유와 요거트가 담긴 장바구니) (0) | 2023.12.29 |
SQL 코드카타 - 3개 테이블 JOIN / CASE WHEN 으로 대여 분류 / 회원수 DISTINCT / DATEDIFF 날짜사이 간격 (1) | 2023.12.27 |
SQL 코드카타 - GROUP BY ~ HAVING / CASE WHEN (1) | 2023.12.26 |