Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dfs
- 그리디
- 10813 자바
- 자바 10866
- 파이썬
- 1764 자바
- 2798 자바
- BFS
- 백준 2346 자바
- 백준 28278 자바
- 자바 1003
- 백준 1764 자바
- 10807 자바
- 2346 풍선 터뜨리기
- IAM 사용자
- 백준 10866 자바
- 데보션영 3기
- 자바 28278
- IAM Identity Center
- 2164 자바
- 1010 자바
- 백준
- 티움투어
- 코딩테스트
- 2748 자바
- 10810 자바
- 자바 2164
- 28278 스택 2
- 자바
- 자바 2346
Archives
- Today
- Total
자두의 데브로그
[MySQL] SQL 문제 풀이 - SELECT (2) 본문
오프라인/온라인 판매 데이터 통합하기
-- 코드를 입력하세요
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE SALES_DATE LIKE "2022-03%"
UNION ALL
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE, PRODUCT_ID, NULL, SALES_AMOUNT FROM OFFLINE_SALE WHERE SALES_DATE LIKE "2022-03%"
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID;
[새로 알게 된 점]
- UNION ALL
- 여러 쿼리문을 합쳐서 하나의 쿼리문으로 만들어줌
- 중복 값을 모두 보여준다
- UNION
- 여러 쿼리문을 합쳐서 하나의 쿼리문으로 만들어줌
- 중복된 값 제거 (중복 제거 연산 때문에 UNION ALL보다 속도가 느림)
- 없는 속성에 대해 NULL 값을 넣기 위해서는 합집합으로 합칠 속성 값에 해당되는 순서에 NULL을 넣는다
특정 세대의 대장균 찾기
-- 코드를 작성해주세요
SELECT e1.ID FROM ECOLI_DATA e1 WHERE e1.PARENT_ID IN (
SELECT e2.ID FROM ECOLI_DATA e2 WHERE e2.PARENT_ID IN (
SELECT e3.ID FROM ECOLI_DATA e3 WHERE e3.PARENT_ID is NULL
)
)
ORDER BY e1.ID;
[새로 알게 된 점]
- NULL 판별할 때는 is 나 is not 으로 해야된다!!! 자꾸 = 으로 판별하는데 까먹지 말자!
SELECT
e4.ID
FROM
(SELECT
e2.ID
FROM
ECOLI_DATA e1
INNER JOIN
ECOLI_DATA e2 ON e1.ID = e2.PARENT_ID
WHERE
e1.PARENT_ID IS NULL) e3
INNER JOIN
ECOLI_DATA e4 ON e3.ID = e4.PARENT_ID
ORDER BY
e4.ID
- 이렇게도 풀 수 있음! JOIN 중첩해서 쓰는 것도 연습하자
'코딩테스트 > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 12세 이하인 여자 환자 목록 출력하기 (0) | 2024.10.10 |
---|---|
[MySQL] SQL 문제 풀이 - JOIN (2) (0) | 2024.08.05 |
[MySQL] SQL 문제 풀이 - JOIN (1) (0) | 2024.08.05 |
[MySQL] SQL 문제 풀이 - SUM, MAX, MIN (0) | 2024.07.30 |
[MySQL] SQL 문제 풀이 - SELECT (1) (0) | 2024.07.27 |