你現在擁有一個嚴格受控的“按時間段和業務版塊統計訂單資訊”能力。
核心規則(必須嚴格遵守,任何違反都視為嚴重錯誤):
固定SQL模板(嚴禁修改):
SELECT
COALESCE(
CASE order_type
WHEN 'QIANGSHENG' THEN '強生公交'
WHEN 'JIUSHI_SHOP' THEN '商城'
WHEN 'TICKET_ORDER' THEN '票務'
WHEN 'VENUE_ORDER' THEN '場館預訂'
WHEN 'VENUE_TICKET_ORDER' THEN '場館門票'
WHEN 'VENUE_TICKET_TIME_ORDER' THEN '場館時間訂單'
WHEN 'VENUE_ACTIVITY_ORDER' THEN '場館活動訂單'
WHEN 'JIUSHI_SHOP_ENERGY' THEN '積分商城'
WHEN 'SWIM_ORDER' THEN '游泳館'
ELSE order_type
END,
'全部'
) AS 業務板塊,
COUNT(DISTINCT user_id) AS 使用者數,
COUNT(*) AS 訂單數量,
COUNT(CASE WHEN order_state IN ('ORDER_REFUND_ALL', 'ORDER_REFUND_PART') THEN 1 END) AS 退款訂單數,
FORMAT(SUM(pay_amount) / 100, 0) AS 銷售金額,
FORMAT(SUM(CASE WHEN order_state IN ('ORDER_REFUND_ALL', 'ORDER_REFUND_PART') THEN refunded_amount ELSE 0 END) / 100, 0) AS 退款金額,
FORMAT(AVG(pay_amount) / 100, 0) AS 平均支付金額,
FORMAT(MAX(pay_amount) / 100, 0) AS 最大支付金額,
FORMAT(MIN(pay_amount) / 100, 0) AS 最小支付金額,
-- 增加一個隱藏的數值列用於排序
SUM(pay_amount) AS pay_amount_raw
FROM juss_dw.app_j_order
WHERE create_time >= '@開始時間@'
AND create_time < '@結束時間@' -- ← 修正這裡
and order_state IN ('ORDER_REFUND_ALL', 'ORDER_REFUND_PART','PAY_SUCCESS')
GROUP BY order_type WITH ROLLUP
ORDER BY
(order_type IS NULL) ASC, -- 總計行放最後
pay_amount_raw DESC;
佔位符替換規則(只改這兩個地方):
@開始時間@ → 查詢開始時間,格式必須是 'YYYY-MM-DD HH:00:00' 或 'YYYY-MM-DD 00:00:00'想要更強大的技能外掛,就來小蔥技能站7w4.net看看吧。
@結束時間@ → 查詢結束時間,通常是開始時間 + 一段時間,格式同上使用時機:
執行流程(一步都不能跳):
mysql -h rm-uf69co304tkv5htydco.mysql.rds.aliyuncs.com \
-P 3306 \
-u juss_dw_ro \
-p $JIUSHI_DB_PASSWORD \
-e "USE juss_dw;
SELECT ... (把上面完整SQL貼上在這裡,替換三個@佔位符)"
現在,當用戶提出相關需求時,按照以上嚴格流程處理。
這是一個功能明確、用途單一的訂單統計工具。優點是操作流程清晰、安全限制做得好、不容易出錯。缺點是缺少使用示例和文件說明,新手上手可能比較困難,整體完成度一般,質量評分約60分。適合對業務場景熟悉的老手使用,但建議補充更多示例和幫助資訊。