온라인쇼핑동향조사>온라인쇼핑몰 판매매체별/상품군별거래액
실습데이터 : 2017년부터 2021년 3월까지의 전자상거래 추정거래액 (단위, 백만원)
--------------------------------- 1. 데이터 탐색
--gmv_trend 테이블의 모든 데이터값을 추출
select *
from gmv_trend;
--gmv_trend 테이블에서 카테고리, 년도, 월, 매출액 데이터만 추출
select category, yyyy, mm, gmv
from gmv_trend
--gmv_trend 테이블에서 중복값 제거된 카테고리 고유의 값만 추출
select distinct category
from gmv_trend
--gmv_trend 테이블에서 중복값 제거된 년도, 월별 고유의 값만 추출
select distinct yyyy, mm
from gmv_trend
--------------------------------- 2. 특정 데이터 탐색
--gmv_trend 테이블에서 2021년도 데이터만 추출
select *
from gmv_trend
where yyyy = 2021
--gmv_trend 테이블에서 2018년 이후 데이터만 추출
select *
from gmv_trend
where yyyy >= 2019
--gmv_trend 테이블에서 2018년~2020년 사이의 데이터만 추출
select *
from gmv_trend
where yyyy between 2018 and 2020
--또는 where yyyy >= 2018 and yyyy <= 2020
--gmv_trend 테이블에서 2021년 데이터를 제외하고 추출하는 2가지 방법
select *
from gmv_trend
where yyyy != 2021
select *
from gmv_trend
where yyyy <> 2021
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기" 데이터만 추출
select *
from gmv_trend
where category = '컴퓨터 및 주변기기'
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기" 데이터만 제외하고 추출
select *
from gmv_trend
where category <> '컴퓨터 및 주변기기'
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기", "패션용품 및 액세서리" 데이터만 추출 (or,and 사용 불가)
select *
from gmv_trend
where category in ('컴퓨터 및 주변기기' , '패션용품 및 액세서리' )
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기", "패션용품 및 액세서리" 데이터만 제외하고 추출 (or,and 사용 불가)
select *
from gmv_trend
where category not in ('컴퓨터 및 주변기기' , '패션용품 및 액세서리' )
--gmv_trend 테이블에서 카테고리에 "서비스" 단어가 포함되어 있는 모든 데이터만 추출
select *
from gmv_trend
where category like '%서비스%'
--gmv_trend 테이블에서 카테고리에 "패션" 단어가 포함되어 있지 않는 모든 데이터만 추출
select *
from gmv_trend
where category not like '%패션%'
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기" 인 2021년도 데이터만 추출
select *
from gmv_trend
where category = '컴퓨터 및 주변기기' and yyyy = 2021
--gmv_trend 테이블에서 거래액이 아주 크거나 아주 작은 데이터만 추출 (1000000 이상 또는 10000)
select *
from gmv_trend
where gmv >= 1000000 or gmv <= 10000
--gmv_trend 테이블에서 거래액이 아주 크거나 아주 작은 데이터만 2021년도에 한해서 추출 (1000000 이상 또는 10000)
select *
from gmv_trend
where (gmv >= 1000000 or gmv <= 10000) and yyyy = 2021
-- or와 and가 함께 있을땐 and 먼저 계산되기 때문에 (괄호)를 사용해야한다.
--------------------------------- 3. 그룹별 매출 분석
-- 외우자! ㅁㅁ별 000를 보고 싶을 땐
-- ㅁㅁ별에는 group by를 select 순서대로 입력해줘야 하고
-- 000에는 sum(), min()과 같이 집계 함수가 필요하다!
-- 순서 : select > from > where(집계 전 필터링) > group by > having(집계 후 필터링)
--gmv_trend 테이블에서 카테고리별, 년도별 매출 추출 (카테고리 컬럼명은 "카테고리", 년도 컬럼명은 "년도", 매출액 컬럼명은 "매출액"으로)
select category 카테고리 , yyyy 년도, sum(gmv) 매출액
from gmv_trend
group by category , yyyy
--명칭 쓸 때 일반적으로 as를 사용하지만, 없어도 됩니다.
--group by 에서는 명칭이 아닌 본래의 이름으로 적거나 1,2 처럼 숫자화 하여도 select 있는 순서대로 지정하여 진행됩니다.
select category 카테고리 , yyyy 년도, sum(gmv) 매출액
from gmv_trend
group by 1,2
--gmv_trend 테이블에서 매출 합계만 추출
select sum(gmv)
from gmv_trend
--gmv_trend 테이블에서 매출 합계, 매출 최소금액, 매출 최대금액, 매출 평균액(소숫점없게 반올림) 추출
select sum(gmv) , min(gmv), max(gmv), round(avg(gmv),0)
from gmv_trend
--gmv_trend 테이블에서 카테고리가 '컴퓨터 및 주변기기'인 년도별 매출
select category, yyyy, sum(gmv)
from gmv_trend
where category = '컴퓨터 및 주변기기'
group by 1,2
--gmv_trend 테이블에서 2018년~2020년의 카테고리별 매출 평균금액(소숫점없게 반올림)
select category , yyyy, round(avg(gmv) ,0)
from gmv_trend
where yyyy between 2018 and 2020
group by 1,2
--gmv_trend 테이블에서 2018~2020년 카테고리별 매출 합계 (소숫점없게 반올림) 단, 합계가 15,000,000 이상인 경우만
select category , yyyy, round(sum(gmv) ,0)
from gmv_trend
where yyyy between 2018 and 2020
group by 1,2
having sum(gmv) >= 15000000
--gmv_trend 테이블에서 년도순으로 전체 정렬
select *
from gmv_trend
order by yyyy
--gmv_trend 테이블에서 년도순 + 월별 + 플랫폼타입전체 정렬
select *
from gmv_trend
order by yyyy,mm, platform_type
--gmv_trend 테이블에서 매출 높은 순으로 카테고리 정렬
select category, sum(gmv) as gmv
from gmv_trend
group by 1
order by gmv desc -- 위에 sum(gmv) 에 as gmv를 해줘야 합니다.
--gmv_trend 테이블에서 카테고리별 년도별 매출액 합계(최신년도 먼저 오게)
select category , yyyy, sum(gmv)
from gmv_trend
group by 1,2
order by 1,2 desc -- 2번째 yyyy를 desc 로 정렬
--gmv_trend 테이블에서 카테고리별 년도별 매출액 합계를 (최신년도 먼저 + 매출액합계 가장 높은 금액 먼저)
select category, yyyy, sum(gmv)
from gmv_trend
group by 1,2
order by 2 desc , 3 desc
--gmv_trend 테이블에서 최신년도, 최신월에 따른 최고 매출 합계와 카테고리
select yyyy, mm, sum(gmv) , category
from gmv_trend
group by 1,2,4
order by 1 desc, 2 desc, 3 desc
--gmv_trend 테이블에서 년도별 매출액 평균 (평균매출액 높은 순서대로 + 소숫점 없게 반올림)
select yyyy, round(avg(gmv),0)
from gmv_trend
group by 1
order by 2 desc
--gmv_trend 테이블에서 년도별 매출액 평균 (평균매출액 높은 순서대로 + 소숫점 없게 반올림) top 3
select yyyy, round(avg(gmv),0)
from gmv_trend
group by 1
order by 2 desc
limit 3
--gmv_trend 테이블의 데이터를 5rows만
select *
from gmv_trend
limit 3
수학점수가 70점 이상이거나 과학점수가 65점 이상이면서
, 통계학과
이여야해. ( 수학점수 >= 70 or 과학점수 >= 65)
and 학과 = "통계학과"
Group by, Having 에 집계함수
를 씁니다. group by로 집계함수에 대한 필터링 = Having
집계 전 필터링 = Where
--------------------------------- 1. 데이터 탐색
--gmv_trend 테이블의 모든 데이터값을 추출
--gmv_trend 테이블에서 카테고리, 년도, 월, 매출액 데이터만 추출
--gmv_trend 테이블에서 중복값 제거된 카테고리 고유의 값만 추출
--gmv_trend 테이블에서 중복값 제거된 년도, 월별 고유의 값만 추출
--------------------------------- 2. 특정 데이터 탐색
--gmv_trend 테이블에서 2021년도 데이터만 추출
--gmv_trend 테이블에서 2018년 이후 데이터만 추출
--gmv_trend 테이블에서 2018년~2020년 사이의 데이터만 추출하는 2가지 방법
--gmv_trend 테이블에서 2021년 데이터를 제외하고 추출하는 2가지 방법
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기" 데이터만 추출
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기" 데이터만 제외하고 추출
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기", "패션용품 및 액세서리" 데이터만 추출 (or,and 사용 불가)
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기", "패션용품 및 액세서리" 데이터만 제외하고 추출 (or,and 사용 불가)
--gmv_trend 테이블에서 카테고리에 "서비스" 단어가 포함되어 있는 모든 데이터만 추출
--gmv_trend 테이블에서 카테고리에 "패션" 단어가 포함되어 있지 않는 모든 데이터만 추출
--gmv_trend 테이블에서 카테고리가 "컴퓨터 및 주변기기" 인 2021년도 데이터만 추출
--gmv_trend 테이블에서 거래액이 아주 크거나 아주 작은 데이터만 추출 (1000000 이상 또는 10000)
--gmv_trend 테이블에서 거래액이 아주 크거나 아주 작은 데이터만 2021년도에 한해서 추출 (1000000 이상 또는 10000)
--------------------------------- 3. 그룹별 매출 분석
--gmv_trend 테이블에서 카테고리별, 년도별 매출 추출 (카테고리 컬럼명은 "카테고리", 년도 컬럼명은 "년도", 매출액 컬럼명은 "매출액"으로)
--group by 에서는 명칭이 아닌 본래의 이름으로 적거나 1,2 처럼 숫자화 하여도 select 있는 순서대로 지정하여 진행됩니다.
--gmv_trend 테이블에서 매출 합계만 추출
--gmv_trend 테이블에서 매출 합계, 매출 최소금액, 매출 최대금액, 매출 평균액(소숫점없게 반올림) 추출
--gmv_trend 테이블에서 카테고리가 '컴퓨터 및 주변기기'인 년도별 매출
--gmv_trend 테이블에서 2018년~2020년의 카테고리별 매출 평균금액(소숫점없게 반올림)
--gmv_trend 테이블에서 2018~2020년 카테고리별 매출 합계 (소숫점없게 반올림) 단, 합계가 15,000,000 이상인 경우만
--gmv_trend 테이블에서 년도순으로 전체 정렬
--gmv_trend 테이블에서 년도순 + 월별 + 플랫폼타입전체 정렬
--gmv_trend 테이블에서 매출 높은 순으로 카테고리 정렬
--gmv_trend 테이블에서 카테고리별 년도별 매출액 합계(최신년도 먼저 오게)
--gmv_trend 테이블에서 카테고리별 년도별 매출액 합계를 (최신년도 먼저 + 매출액합계 가장 높은 금액 먼저)
--gmv_trend 테이블에서 최신년도, 최신월에 따른 최고 매출 합계와 카테고리
--gmv_trend 테이블에서 년도별 매출액 평균 (평균매출액 높은 순서대로 + 소숫점 없게 반올림)
--gmv_trend 테이블에서 년도별 매출액 평균 (평균매출액 높은 순서대로 + 소숫점 없게 반올림) top 3
--gmv_trend 테이블의 데이터를 5rows만