반응형
1. 월별 주문수, 주문금액
SELECT SUBSTRING(od_receipt_time,1,7) AS od_month
, COUNT(SUBSTRING(od_receipt_time,1,7)) AS gl_od_cnt
, SUM(od_receipt_price) AS "gl_od_amount($)"
, SUM(od_receipt_price) * (SELECT data FROM s2_s2_api_currency_cms WHERE currency = 'USD' ORDER BY db_date desc limit 1) AS "gl_od_amount(krw)"
FROM "dev"."gl_test"."s2_g5_shop_order"
WHERE SUBSTRING(od_receipt_time,1,10) BETWEEN '2020-01-01' AND 'current_month'
AND od_status IN ('완료','입금','배송','준비')
GROUP BY SUBSTRING(od_receipt_time,1,7)
ORDER BY od_month ASC
위 쿼리문에서 4행은 서브쿼리문을 사용했는데,
달러를 가장 최근날짜 환율로 계산해서 원화로 만들어주는 작업 진행한 것
서브쿼리 사용법은 여기서 확인 👉 서브쿼리 사용법
2. 월별 가입
SELECT
substring(mb_datetime, 1,7) AS month,
COUNT(*) AS register_qty
FROM s2_g5_member
WHERE substring(mb_datetime, 1,7) BETWEEN '2020-01' AND 'current_month'
GROUP BY month
ORDER BY month ASC
3. 월별 방문 UV
SELECT LEFT(vi_date,7) AS month
,COUNT(DISTINCT vi_ip) AS gl_visit
FROM s2_g5_visit
WHERE vi_date BETWEEN '2021-01-01' AND 'current_date'
AND LEFT(vi_ip,9) !='**.**.180'
GROUP BY LEFT(vi_date,7)
ORDER BY month ASC
4. 신규 / 재 주문
row_number() over 함수와
case 문 사용
select month
, count(*) as total_order_
, sum(case when o_rn = 1 then 1 else 0 end) as new_order
, sum(case when o_rn = 1 then 0 else 1 end) as re_order
, sum(od_receipt_price) as total_price
, sum(case when o_rn = 1 then od_receipt_price else 0 end) as new_price
, sum(case when o_rn = 1 then 0 else od_receipt_price end) as re_price
from
(select substring(od_receipt_time, 1,7) as month
, mb_id
, od_receipt_price
, row_number() over (partition by mb_id order by od_receipt_time) as o_rn
from s2_g5_shop_order
) s1
where month between '2022-01' and 'current_month'
group by month
order by 1
재주문비율 필드는 수식으로 만듦 (쿼리문으로 뽑지않고)
'IT > SQL' 카테고리의 다른 글
[SQL, QuickSight] 브랜드별 일별 매출 쿼리문 (ft. 날짜 필터) (0) | 2022.09.23 |
---|---|
[SQL, QuickSight] 일별 가입수, 가입경로 쿼리문/ 차트 (0) | 2022.09.23 |
[SQL, QuickSight] 누적일 비교 쿼리문 (전 월 누적일, 전 년 동 월 누적일) (0) | 2022.09.20 |
[SQL] 문자열 더해서 출력하는 방법 (concat or ||) (0) | 2022.08.30 |
[SQL] 전월 동일 시점 누적 데이터 비교 쿼리문(ft. Line Chart) (0) | 2022.06.13 |
댓글