1. UNION
- 기본 구조
select 컬럼1, 컬럼2, 컬럼3, ...
from 테이블명1
union (all) # UNION or UNION all
select 컬럼1, 컬럼2, 컬럼3, ...
from 테이블명2
- UNION은 두 테이블 사이에 작성
- 조건
- 열 개수가 같아야 함 → 두 테이블 컬럼 개수가 다르면 서브쿼리(인라인 뷰)로 해결 가능
- 컬럼 순서가 같아야 함 → 컬럼명은 달라도 상관없음. 단, 맨 위 SELECT 절 뒤에 있는 컬럼명으로 설정됨
- 합쳐지는 컬럼끼리 데이터 타입 같아야 함
- UNION 시 두 테이블에 중복되는 행이 있는 경우
- 중복 제거 필요한 경우 → UNION
- 중복 제거 필요 없는 경우 → UNION all
2. JOIN
- 기본 구조
select *
from 테이블명1
JOIN
select *
from 테이블명2
ON 테이블명1.공통컬럼1=테이블명2.공통컬럼1
and 테이블명1.공통컬럼2=테이블명2.공통컬럼2 # 공통컬럼이 두 개 이상인 경우 and로 조건 연결
- 공통컬럼이 한 개 이상만 있으면 서로 다른 두 테이블 JOIN 가능
- 공통컬럼 2개 사용해서 JOIN할 때 → ON에 조건을 AND로 연결
- 날짜 포맷 변경
- DATE_FORMAT(변수명, '%Y-%m-%d') or date(변수명)
- 근데 date(변수명) 이거는 mysql에서만 예약어 기능이 있고, 다른데는 없음. 그래서 다른데선 안 돌아갈 수 있음.
- NULL은 데이터 타입 없음. 그냥 빵꾸
- GROUP BY 할 때, SELECT에서 집계함수를 뺀 모든 컬럼이 GROUP BY로 들어가야 됨. 돌아가도 오류임.
마무리
프로그래머스에서 처음으로 코딩 문제를 풀어봤는데, 기존 테이블의 컬럼 데이터 포맷을 바꾸면 오답 처리가 되었다. 생각해보면 당연한 일이다. 정해진 규칙이 있는 데이터를 임의로 바꿔 분석하는 건 바람직하지 않기 때문이다. 이번 경험을 통해, 앞으로는 데이터의 형식과 규칙을 더 주의 깊게 살펴보며 분석해야겠다는 점을 느꼈다.
'Data_10기' 카테고리의 다른 글
| SQL 라이브 세션 5, 6회차 - JOIN (0) | 2025.11.03 |
|---|---|
| 데이터 리터러시 - 데이터 유형, 지표설정, 결론정리 (0) | 2025.10.31 |
| Python 기초 문법 - List, Dictionary, IF문, FOR문 (0) | 2025.10.29 |
| SQL 라이브 세션 2,3회차 - SQL 연산자, GROUP BY, 서브쿼리 (1) | 2025.10.28 |
| 데이터 리터러시 - 문제정의 (0) | 2025.10.23 |