AI SCHOOL/SQL

[SQL] 집합

moru_xz 2023. 1. 27. 13:40

1. 집합

- 집합 작업은 둘 이상의 쿼리 결과를 단일 결과로 결합하는 데 사용

- 결합된 쿼리는 동일한 수의 열을 반환해야 함

- 호환 가능한 데이터 유형, 해당 열의 이름은 다를 수 있음

 

 

2. UNION(합집합)

- UNION은 두 결과 집합의 결과를 결합하고 중복을 제거

- union all은 중복 행을 제거하지 않음

    - all : 모든 결과 확인

    - distinct : 중복 제거

select * from `weniv.weniv_user` as user1
UNION ALL
select * from `weniv.weniv_user3` as user3

select * from `weniv.weniv_user` as user1
UNION DISTINCT
select * from `weniv.weniv_user3` as user3

-> 두명이던 Grey가 한 명만

 

3. INTERSECT(교집합)

- INTERSECT는 두 결과 집합 모두에 나타나는 행만 반환

select * from `weniv.weniv_user` as user1
INTERSECT DISTINCT
select * from `weniv.weniv_user3` as user3

 

4. EXCEPT(차집합, A-B)

- EXCEPT는 첫 번째 결과 집합에는 나타나지만 두 번째 결과 집합에는 나타나지 않는 행만 반환

select * from `weniv.weniv_user` as user1
except DISTINCT
select * from `weniv.weniv_user3` as user3

 

연도별 회원가입자수와 전체 회원가입자수 합계를 함께 보여주기

select 
  CAST(extract(year from created_at) AS STRING) as year,
  count(id) as user_count
from `thelook_ecommerce.users`
group by year
UNION ALL
select 
  'TOTAL' as year,
  count(id) as user_count
from `thelook_ecommerce.users`
order by year

join은 테이블간의 결합 -> 필드 확장 -> 좌우로

union은 결과를 합치는  -> 위아래로

'AI SCHOOL > SQL' 카테고리의 다른 글

[SQL] WITH / 서브쿼리  (0) 2023.02.02
[SQL] 집합 연습문제  (0) 2023.01.27
[SQL] JOIN 연습문제  (0) 2023.01.26
[SQL] 조건분기(CASE, IF)  (0) 2023.01.26
[SQL] JOIN  (1) 2023.01.26