본문 바로가기
TIL

TIL #4) Dbeaver로 left join, inner join, 피벗테이블

by 해룸 2023. 12. 27.

Today I Learned 

 

LEFT JOIN: A, B 테이블에서 공통적으로 겹치는 값을 조인한다. LEFT JOIN은 A테이블의 내용은 모두 다 가져오기 때문에 null값이 같이 표현될 수 있다.

ex) 한국 음식의 주문별 결제 수단과 수수료율을 조회하기

     (조회 컬럼 : 주문 번호, 식당 이름, 주문 가격, 결제 수단, 수수료율) * 결제 정보가 없는 경우도 포함하여 조회

select 조회 할 칼럼
from 테이블1 a left join 테이블2 b on a.공통컬럼명 = b.공통컬럼명

 

INNER JOIN: A, B 테이블 둘 다 공유하는 값을 조인한다. 

ex) 고객의 주문 식당 조회하기

     (조회 컬럼 : 고객 이름, 연령, 성별, 주문 식당) * 고객명으로 정렬, 중복 없도록 조회

select 조회 할 칼럼
from 테이블1 a inner join 테이블2 on a.공통컬럼명 = b.공통컬럼명

 


SQL로 피벗테이블 만들기

피벗테이블이란 2개 이상의 기준으로 데이터를 집계할때, 보기 쉽게 배열하여 보여주는것을 말한다.

select 집계기준,
           max(if(칼럼 조건)) "칼럼 이름",
           max(if(칼럼 조건)) "칼럼 이름",
           max(if(칼럼 조건)) "칼럼 이름"
from

(
select 조건
           count(1)
from 가져올 테이블
where 조건
group by 1
) a

group by 1

 


오늘의 오류

강의에서 제시한 결과 값
내가 작성한 코드 결과 값

 

내가 만든 SQL의 결과 값과 강의에서 제시하는 결과 값이 다른 문제가 있었다.

처음에는 주문 금액 기준을 잘못 설정했나 하고 여러번 코드를 리뷰했는데 값이 수정되질 않았다.

어떻게 고쳤는가? 

정답코드를 넣자 내 값과 똑같은 결과가 나왔다. 강의 촬영일로부터 시간이 흘러 데이터가 수정 된것이다.

간단한 문제였지만 내 코드가 잘못됐나 고민을 오래했다. 

'TIL' 카테고리의 다른 글

TIL #6) 23.12.29  (0) 2023.12.29
TIL #5) JavaScript 기본 문법  (0) 2023.12.28
TIL #3) 기본 SQL문  (0) 2023.12.26
TIL #2) 헷갈리는 jQuery의 개념, 그리고 CDN이 대체 뭔데..  (0) 2023.12.24
TIL #1) GIT & GIThub  (0) 2023.12.21