/* 기본 주문 정보 (주문 수, 총 금액) */
SELECT
COUNT(DISTINCT order_id) AS unique_orders, -- 전체 주문 건수
SUM(price) AS ord_amt -- 주문 금액 총합
FROM `olist.olist_order_items`;
/* 기본 주문 정보 */
SELECT
COUNT(DISTINCT order_id) AS unique_orders, -- 전체 주문 건수
SUM(price) AS ord_amt, -- 주문 금액 총합
SUM(price) / COUNT(DISTINCT order_id) AS amount_per_order -- 주문 금액 총합 / 주문 건수
FROM `olist.olist_order_items`;
테이블 사용 시 유의사항
주문 정보 테이블
olist_orders
| 컬럼명 | 설명 |
|---|
order_id | 주문번호 |
customer_id | 고객번호 |
order_status | 주문상태 |
order_purchase_timestamp | 구입일자 |
order_approved_at | 주문승인일자 |
order_delivered_carrier_date | 물류업체 도착일자 |
order_delivered_customer_date | 배송완료일자 (고객) |
order_estimated_delivery_date | 배송예정일자 |
고객 정보와 관련된 특이점
customer_id가 매 주문 건마다 새로 생성됩니다.
Example Table
| Order_id | Customer_id |
|---|
| 주문1 | ID1 |
| 주문2 | ID2 |
| 주문3 | ID3 |
유의사항
- 주문 테이블 내 주문 건수와 고객번호 수는 일치합니다.
- 서로 다른
customer_id가 같은 고객일 수 있습니다.
- 고객 정보 테이블에
customer_unique_id가 존재합니다.
주문 상품 정보 테이블
olist_order_items
| 컬럼명 | 설명 |
|---|
order_id | 주문번호 |
order_item_id | 품목수 (동일 제품의 구매번호) |
product_id | 제품번호 |
seller_id | 판매처 |
shipping_limit_date | 판매처한계일자 (판매마감일자) |
price | 판매가격 |
freight_value | 운송비용 |
동일 주문 건에서 동일 제품 구매 시 주의점
Example Table
| Order_id | Product_id | Order_item_id |
|---|
| 주문1 | A | 1 |
| 주문1 | A | 2 |
| 주문1 | A | 3 |
유의사항
order_item_id를 모두 더하면 잘못된 합산이 발생할 수 있습니다.
결론
olist_orders와 olist_order_items 테이블을 사용하여 실전 쿼리를 작성할 때는 위 유의사항을 반드시 고려해야 합니다. 특히 고객 ID와 주문 ID, 품목 수 합산 시 발생할 수 있는 오류를 방지하기 위해 테이블의 구조와 데이터를 정확히 이해하는 것이 중요합니다.