본문 바로가기

SQL 공부(ft.sparta)/3주차

3-7. 결과물 합치기 - Union 배우기

위 사진을 보면 노란색은 7월 , 파란색은 8월이라고 하면 저렇게 보는 것보다 위아래로 나란히 모아서 보는게 더 편하다.

 

그래서 우리가 만들고 싶은것은 아래 사진과 같다. 7월에 8월을 밑에 붙여주자는 거다.

그러니 일단 아래 코드를 복사해서 붙여넣자.

 

select c1.title, c2.week, count(*) as cnt from courses c1
inner join checkins c2 on c1.course_id = c2.course_id
inner join orders o on c2.user_id = o.user_id
where o.created_at >= '2020-08-01'
group by c1.title, c2.week
order by c1.title, c2.week

 

전에 작성했던거다. 위 사진과 비교하면 지금 출력되는 값은 8월달꺼다.

그래서 앞에 8월이라 쓰고 값을 month라고 써줄꺼다.

아래 사진처럼 작성해주면 된다.

이건 전체 다 8월로 찍어주자는 말이다.

 

이번엔 7월을 한번 찍어보자. 코드를 그대로 복사해서 띄어서 붙여넣고 실행해보면 잘 나오는것을 볼 수 있다.

 

그래서 이 두개를  잇는다는거다.

 

이렇게 작성하면 아래 사진처럼 나온다.

 

위 사진을 보면 order by를 했던게 먹히지 않고 같은숫자가 나오면서 깨진다.

이건 union 이 order by가 먹히지 않아서 그렇다.

그래서 코드에 order by를 없애도 결과는 달라지는게 없다.

 

합친거에서 order by를 해야 먹힌다.

이게 4주차에 나오는 서브쿼리에 대한 개념을 알고있으면 아주 쉽게 할 수 있다.

 

다음시간엔 숙제다.