[SQL]테이블 피봇

hanahana·2023년 1월 18일
0

자료를 특정한 그룹으로 나누어 정리하는것을 말한다.

1avalue1
2bvalue2
3bvalue3
4avalue5

CASE를 이용하여 만들기

case문을 사용하여
컬럼 ㄴ의 값이 b인 ㄱ을 정리한다.

select ㄱ깈
,case when= 'b' thenas b_column
from tbl

이런식으로 쿼리문을 작성하면

b_column
1
22
33
4

이런 피봇테이블을 얻을수있다.
여기서 데이터의 숫자를 얻으려고 한다면

select count(distinct)
,count(distinct case when= 'b' then) as b_column
from tbl
count(distinct ㄱ)b_column
42

라는 데이터 값을 얻을수있게된다.

중복제거하기

1avalue1
2bvalue2
3bvalue3
4avalue5
1bvalue6

컬럼 ㄱ과 ㄴ의 갯수를 구한다고 가정하자.
ㄱ컬럼에 중복값이 있다.
이럴경우 컬럼을 어떻게 작성하면 좋을까?

select
count(distinct if(= 'a',,null)) asfrom tbl

이런식으로 ㄴ의 값이 a일때 ㄱ의 값으로 치환한다면 distinct함수가 컬럼의 중복을 제거해줄것이다, 프라이머리키나 id의 값으로 치환하여 주면 중복된 데이터를 교체하는 기 편리하다

본 내용은 데이터리안 'SQL 데이터 분석 캠프 입문반' 을 수강하며 작성한 내용입니다

profile
hello world

0개의 댓글