https://school.programmers.co.kr/learn/courses/30/lessons/131537
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
ONLINE_SALE
OFFLINE_SALE
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
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE, PRODUCT_ID,NULL AS USER_ID,SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE LIKE "2022-03%"
ORDER BY SALES_DATE, PRODUCT_ID,USER_ID
결과
UNION
UNION은 각 테이블을 만들어서 합치는 방식이다.
그러므로 형식이 같아야한다. OFFLINE_SALE에는 PRODUCT_ID가 없으므로 NULL으로 맞춰서 칼럼을 형성해주어야한다. UNION은 중복을 제거한다.
중복을 제거하지 않기를 원한다면 UNION ALL을 사용한다.
LIKE
LIKE는 특정 문자를 검색할 때 이용한다.
1. %
%는 임의의 문자열을 나타낸다. 즉 몇글자이건 괜찮다.
뒤에 사용하는 경우
WHERE 칼럼명 LIKE 2022-03-% => 2022-03-으로 시작하는 경우를 검색
앞에 사용하는 경우
WHERE 칼럼명 LIKE %-03-27 => - 03-27 으로 끝나는 경우를 검색
앞, 뒤에 사용하는 경우
WHERE 칼럼명 LIKE %-03-% => -03-이 들어가는 경우 탐색
2. _
_는 임의의 한글자를 의미한다.
010-1234-1_5_과 같이 글자수가 정해져 있고, 임의의 한글자가 들어간 경우를 탐색한다.
'MYSQL' 카테고리의 다른 글
[MYSQL] 반올림과 버림 - ROUND, TRUNCATE (0) | 2023.10.20 |
---|---|
[MYSQL] 상위 N개 보여주기 (1) | 2023.10.20 |
[MYSQL] GROUP BY, HAVING 사용하기(+두가지 칼럼으로 묶기) (0) | 2023.10.20 |
[MYSQL] 값이 null인 경우 기본값 출력(ifnull) (0) | 2023.10.20 |
[MYSQL] 오름차순, 내림차순 정렬(+값이 같을때, 두가지 정렬기준) (0) | 2023.10.20 |