ETL 完成
This commit is contained in:
52
etl_billiards/docs/table_2025-12-19/财务_优惠分布_2025年10-12月.md
Normal file
52
etl_billiards/docs/table_2025-12-19/财务_优惠分布_2025年10-12月.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# 2025年10-12月 财务优惠(会员折扣+台费调账)分布
|
||||
## 思考过程
|
||||
用台费订单为基准关联调账表,再按客户+月份汇总,输出“谁享受了优惠”及金额分布。
|
||||
|
||||
## 查询说明
|
||||
优惠=会员折扣(dwd_table_fee_log.member_discount_amount)+台费调账(dwd_table_fee_adjust.ledger_amount),按订单归集后汇总到客户(member_id),按订单最早开台时间切月;不含团购抵扣等其它优惠。
|
||||
|
||||
## SQL
|
||||
|
||||
### 优惠分布(客户+月份)
|
||||
```sql
|
||||
with base_orders as (
|
||||
select
|
||||
tfl.order_settle_id,
|
||||
max(tfl.member_id) as member_id,
|
||||
min(tfl.start_use_time) as order_start_time,
|
||||
sum(tfl.member_discount_amount) as member_discount_amount
|
||||
from billiards_dwd.dwd_table_fee_log tfl
|
||||
where tfl.site_id = %(site_id)s
|
||||
and coalesce(tfl.is_delete,0) = 0
|
||||
and tfl.start_use_time >= %(window_start)s::timestamptz
|
||||
and tfl.start_use_time < %(window_end)s::timestamptz
|
||||
group by tfl.order_settle_id
|
||||
),
|
||||
adjusts as (
|
||||
select
|
||||
tfa.order_settle_id,
|
||||
sum(tfa.ledger_amount) as adjust_amount
|
||||
from billiards_dwd.dwd_table_fee_adjust tfa
|
||||
join base_orders bo on bo.order_settle_id = tfa.order_settle_id
|
||||
where tfa.site_id = %(site_id)s
|
||||
and coalesce(tfa.is_delete,0) = 0
|
||||
group by tfa.order_settle_id
|
||||
)
|
||||
, x as (
|
||||
select
|
||||
bo.member_id,
|
||||
case when bo.order_start_time >= '2025-10-01 00:00:00+08'::timestamptz and bo.order_start_time < '2025-11-01 00:00:00+08'::timestamptz then '2025-10' when bo.order_start_time >= '2025-11-01 00:00:00+08'::timestamptz and bo.order_start_time < '2025-12-01 00:00:00+08'::timestamptz then '2025-11' when bo.order_start_time >= '2025-12-01 00:00:00+08'::timestamptz and bo.order_start_time < '2026-01-01 00:00:00+08'::timestamptz then '2025-12' else null end as month_key,
|
||||
coalesce(bo.member_discount_amount,0) as member_discount_amount,
|
||||
coalesce(a.adjust_amount,0) as adjust_amount
|
||||
from base_orders bo
|
||||
left join adjusts a on a.order_settle_id = bo.order_settle_id
|
||||
)
|
||||
select
|
||||
member_id,
|
||||
month_key,
|
||||
sum(member_discount_amount) as member_discount_sum,
|
||||
sum(adjust_amount) as adjust_sum
|
||||
from x
|
||||
where month_key is not null
|
||||
group by member_id, month_key;
|
||||
```
|
||||
Reference in New Issue
Block a user