Shonny Data

SQL 코드카타 - WITH ~AS 구문 / NULL 값 주기 / UNION 본문

Sparta_coding_club/SQL 코드카타

SQL 코드카타 - WITH ~AS 구문 / NULL 값 주기 / UNION

데이터분석쇼니 2023. 12. 29. 17:26

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

 -  위와 동일하게 사용하되, 동일한 항목은 하나로 중첩하여 보여주는 함수