SQL Developer - 데이터 분석(3)

ORDERTBL 데이터 분석
- orderTBL orderid 컬럼은 item id(num)와 일치
- orderTBL userid 컬럼은 usertbl 의 userid와 일치
- item category_id 컬럼은 category id(num) 와 일치
1. orderTBL 조회
SELECT
*
FROM
ordertbl;

1) userid가 없는 주문 내역 조회
SELECT
*
FROM
ordertbl
WHERE
userid IS NULL;

2) 아이템 테이블 조회

3) 상품별 매출액 집계 후 매출액 높은 순으로 정렬
SELECT
itemid,
SUM(gmv) AS gmv
FROM
ordertbl
GROUP BY
itemid
ORDER BY
gmv DESC;

4) 위의 결과 + itemid 의 제품이 무엇인지 보여주기(item)

-- where 절
SELECT
itemid,
item_name,
SUM(gmv) AS gmv
FROM
ordertbl o,
item i
WHERE
o.itemid = i.num -- num(id)
GROUP BY
itemid,
item_name
ORDER BY
gmv DESC;
-- join ~on : 내부조인
SELECT
itemid,
item_name,
SUM(gmv) AS gmv
FROM
ordertbl o
JOIN item i ON o.itemid = i.num -- num(id)
GROUP BY
itemid,
item_name
ORDER BY
gmv DESC;

5) 카테고리별 매출액 : 3개 조인

SELECT
c.cate1,
c.cate2,
c.cate3,
SUM(gmv) AS gmv
FROM
ordertbl o
JOIN item i ON o.itemid = i.num
JOIN category c ON i.category_id = c.num
GROUP BY
c.cate1,
c.cate2,
c.cate3
ORDER BY
gmv DESC;

6) 성별 매출액

SELECT
u.gender,
SUM(gmv) AS gmv
FROM
ordertbl o
JOIN usertbl u ON o.userid = u.userid
GROUP BY
u.gender
ORDER BY
gmv DESC;

7) 성별/ 연령대 별 매출액
-- 연령대 그룹 확인
SELECT
*
FROM
usertbl;

SELECT
u.gender,
u.age_band,
SUM(gmv) AS gmv
FROM
ordertbl o
JOIN usertbl u ON o.userid = u.userid
GROUP BY
u.gender,
u.age_band
ORDER BY
u.gender,
u.age_band;
