SQL语句更新
This commit is contained in:
94
SQL.sql
94
SQL.sql
@@ -1,26 +1,80 @@
|
|||||||
-- 线上店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
-- 线上店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
||||||
SELECT
|
SELECT
|
||||||
sales.store_code as '店铺编码',
|
s.店铺编码,
|
||||||
year(sales.order_date) AS '年份',
|
s.年份,
|
||||||
round(sum(sales.order_settle_amt),2) as '销售金额',
|
ROUND(s.销售金额,2) AS '销售金额',
|
||||||
COUNT(sales.platform_order_no) +
|
s.订单数量,
|
||||||
SUM(LENGTH(sales.platform_order_no) - LENGTH(REPLACE(sales.platform_order_no, ',', ''))) as '订单数量',
|
r.退款金额,
|
||||||
round(sum(change.special_barcode_amt),2) as '退款金额',
|
r.退款订单数,
|
||||||
count(refund.platform_order_no) as '退款订单数',
|
ROUND(s.销售金额/s.订单数量,2) AS '订单均价'
|
||||||
round(sum(sales.order_settle_amt)/count(sales.platform_order_no),2) as '订单均价'
|
FROM(
|
||||||
FROM
|
SELECT
|
||||||
dwd_trade_hkaudit_ecommerce_sale_mt sales
|
store_code AS '店铺编码',
|
||||||
left join dwd_trade_hkaudit_ecommerce_sale_return_mt refund
|
YEAR(order_date) AS '年份',
|
||||||
on sales.platform_order_no = refund.platform_order_no
|
SUM(order_settle_amt) AS '销售金额',
|
||||||
left join dwd_trade_hkaudit_ecommerce_sale_change_mt change
|
-- 针对并单号情况,统计总行数加逗号个数得到总订单数量
|
||||||
on sales.platform_order_no = change.platform_order_no
|
COUNT(platform_order_no) +
|
||||||
WHERE
|
SUM(LENGTH(platform_order_no) - LENGTH(REPLACE(platform_order_no, ',', ''))) AS '订单数量'
|
||||||
sales.order_date >= '2022-01-01 00:00:00'
|
dwd_trade_hkaudit_ecommerce_sale_mt
|
||||||
AND sales.order_date <'2025-07-31 00:00:00'
|
WHERE
|
||||||
GROUP BY
|
order_date >= '2022-01-01 00:00:00'
|
||||||
sales.store_code, year(sales.order_date)
|
AND order_date <'2025-07-01 00:00:00'
|
||||||
|
GROUP BY
|
||||||
|
store_code,YEAR(order_date)
|
||||||
|
) s --销售
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT
|
||||||
|
YEAR(order_date) AS '年份',
|
||||||
|
store_code AS '店铺编码',
|
||||||
|
ROUND(SUM(refund.amount)+SUM(change.amount),2) AS '退款金额',
|
||||||
|
COUNT(refund.platform_order_no) AS '退款订单数'
|
||||||
|
FROM(
|
||||||
|
SELECT
|
||||||
|
-- 将拆分后的单个订单号作为分组和查询的键
|
||||||
|
single_order_id AS platform_order_no,
|
||||||
|
MIN(store_code) AS store_code,
|
||||||
|
MIN(order_date) AS order_date
|
||||||
|
FROM(
|
||||||
|
SELECT
|
||||||
|
store_code,
|
||||||
|
platform_order_no,
|
||||||
|
order_date,
|
||||||
|
splitByChar(',', platform_order_no) AS order_id_array
|
||||||
|
FROM dwd_trade_hkaudit_ecommerce_sale_mt
|
||||||
|
WHERE
|
||||||
|
order_date >= '2022-01-01 00:00:00'
|
||||||
|
AND order_date <'2025-07-01 00:00:00'
|
||||||
|
)
|
||||||
|
-- 使用arrayJoin将数组中的每个元素展开为一行
|
||||||
|
ARRAY JOIN order_id_array AS single_order_id
|
||||||
|
GROUP BY single_order_no
|
||||||
|
) sales
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT
|
||||||
|
platform_order_no,
|
||||||
|
SUM(return_goods_amt)
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_ecommerce_sale_return_mt
|
||||||
|
GROUP BY
|
||||||
|
platform_order_no
|
||||||
|
) refund
|
||||||
|
ON sales.platform_order_no = refund.platform_order_no
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT
|
||||||
|
platform_order_no,
|
||||||
|
SUM(special_barcode_amt) AS amount
|
||||||
|
FROM
|
||||||
|
dwd_trade_hkaudit_ecommerce_sale_change_mt
|
||||||
|
) change
|
||||||
|
ON sales.platform_order_no = change.platform_order_no
|
||||||
|
WHERE
|
||||||
|
refund.platform_order_no IS NOT NULL
|
||||||
|
GROUP BY
|
||||||
|
store_code,YEAR(order_date)
|
||||||
|
) r -- 退款
|
||||||
|
ON s.店铺编码 = r.店铺编码 AND s.年份 = r.年份
|
||||||
ORDER BY
|
ORDER BY
|
||||||
sales.store_code ASC, 年份 ASC
|
年份 ASC, 销售金额 DESC;
|
||||||
|
|
||||||
|
|
||||||
-- 线下店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
-- 线下店铺年度销售金额、订单数量、退款金额、退款订单数、订单均价
|
||||||
|
Reference in New Issue
Block a user