반응형
250x250
Notice
Recent Posts
Recent Comments
Link
영국 척척석사 유학생 일기장👩🏻🎓
(SQL) UNION 이용해서 데이터 추가하기 총정리 본문
728x90
반응형
지난 글에서 두 데이터세트를 나란히 결합할 수 있는 JOIN에 대해 알아보았습니다. 이번 글에서는 데이터를 다른 데이터 위에 쌓아야 할 하는 경우 유용한 UNION 에 대해 알아보겠습니다.
🔻(참고)여러가지 JOIN🔻
(SQL) FULL OUTER JOIN, SELF JOIN과 비교 연산자를 사용한 JOIN 총정리
지난 글에서 LEFT, RIGHT, INNER JOIN 에 대해 알아보았습니다. 이번 글에서는 FULL OUTER JOIN, SELFT JOIN과 비교 연산자를 사용한 JOIN에 대해 알아보겠습니다. 🔻(참고)LEFT,RIGHT,INNER JOIN🔻 (SQL) JOIN, LEFT JOIN,
life-of-nomad.tistory.com
(SQL) JOIN, LEFT JOIN, RIGHT JOIN 정리 및 연습문제
1) JOIN : 한 번에 둘 이상의 테이블에서 데이터를 가져올 수 있도록 함JOIN 문을 추가하면 ON 문도 추가됨SELECT orders.*, accounts.* #테이블 이름은 항상 마침표 앞/ 열은 항상 마침표 뒤FROM ordersJOIN account
life-of-nomad.tistory.com
1. UNION
- UNION 연산자는 2개 이상의 SELECT 문과 결과 집합을 결합하는 데 사용됩니다.
- UNION 내의 각 SELECT 문은 데이터 유형이 유사한 결과 집합에서 동일한 수의 필드를 가져야 합니다.
- 두 테이블의 열 수가 같아야 함
- 해당 열은 첫 번째 테이블과 동일한 순서로 동일한 데이터 유형을 가져야 함
- 열 이름이 같을 필요는 없지만 일반적으로 같음
- 동일한 데이터세트의 다른 부분을 함께 연결하는 경우 유용합니다.
- 주의할 점은, UNION은 고유한 값만 추가한다는 것입니다.
- 즉, UNION을 사용하면 데이터세트가 추가되고 첫 번째 테이블 행과 정확히 같은 추가된 데이터세트의 모든 행이 삭제됩니다.
- 만약 두 번째 테이블의 모든 값을 추가하려면 UNION ALL 을 사용합니다.
- 결합할 때 두 개의 개별 선택문을 작성하기 때문에 추가하기 전에 다르게 처리할 수 있습니다.
- 예를 들어, 다른 WHERE 절을 사용하여 첫번째 테이블에서 'Facebook'과 동일한 행만 표시하는 코드는 아래와 같습니다.
SELECT *
FROM web_events
WHERE channel = 'facebook'
UNION ALL
SELECT *
FROM web_events_2
- 두 개의 SELECT 문을 함께 결합하면 개별 부분이 아니라 전체 데이터세트에 대해 작업을 수행할 수 있습니다.
- 결합된 결과가 단일 결과 집합으로 처리되도록 서브쿼리에서 함께 결합하여 이를 수행할 수 있습니다.
SELECT channel, COUNT(*) AS sessions
FROM (
SELECT *
FROM web_events
UNION ALL
SELECT *
FROM web_events_2
) web_events
GROUP BY 1
ORDER BY 2 DESC
- 위와 같이 이 두 테이블에서 결합된 결과를 가져와 채널 별로 모든 세션을 계산할 수 있습니다.
2. WITH를 이용한 UNION
- 위의 방법을 수행하는 더 깔끔한 방법은 WITH를 사용해 UNION을 수행한 다음 기본 쿼리에서 집계를 하는 것입니다.
WITH web_events AS (
SELECT *
FROM web_events
UNION ALL
SELECT *
FROM web_events_2
)
SELECT channel, COUNT(*) AS sessions
FROM web_events
GROUP BY 1
ORDER BY 2 DESC
- 결과는 동일하지만 쿼리 논리를 읽는 것이 훨씬 쉽습니다.
🔻(참고)WITH 서브쿼리🔻
(SQL) WITH 서브쿼리 연습문제
예제) 각 channel의 하루 평균 이벤트 수먼저, DATE_TRUNC를 이용해 날짜별로 그룹을 만들어줍니다.DATE_TRUNC개념 🔻 (SQL) DATE_TRUNC DATE_PART 개념 및 연습문제1) DATE_TRUNC날짜, 시간 열의 특정 부분으로 날
life-of-nomad.tistory.com
728x90
반응형
'코딩공부 > SQL' 카테고리의 다른 글
(SQL) FULL OUTER JOIN, SELF JOIN과 비교 연산자를 사용한 JOIN 총정리 (0) | 2024.06.03 |
---|---|
(SQL) 고급 윈도우 함수 ALIASES, LAG/ LEAD, PERCENTILES (0) | 2024.06.03 |
(SQL) 순위 윈도우(Window) 함수 Row_number, Rank, Dense rank 개념 및 구문 예시 (0) | 2024.06.03 |
(SQL) 주요 Window 함수인 PARTITION BY, OVER 개념 구문 및 예시 (0) | 2024.05.31 |
(SQL) 윈도우 함수 (Window Fuction) 개념 및 종류 총정리 (0) | 2024.05.31 |