notebook/996/doirs/物化视图1.sql
2025-07-11 15:32:31 +08:00

32 lines
819 B
SQL

CREATE MATERIALIZED VIEW mv_demo
PARTITION BY (pay_date) -- 关键分区声明
BUILD DEFERRED
REFRESH AUTO ON SCHEDULE EVERY 1 DAY START ('2025-06-27 03:00:00')
DISTRIBUTED BY HASH(game_id, user_id) BUCKETS AUTO
PROPERTIES (
'replication_num' = '1',
'partition_refresh_number' = '1',
'partition_sync_limit' = '1', -- 仅同步最近1分区
'partition_sync_time_unit' = 'DAY' -- 按天同步
)
AS
SELECT
a.game_id,
a.user_id,
b.reg_date,
a.pay_date,
a.amount,
(a.pay_date - b.reg_date) AS rd
FROM (
SELECT
game_id,
user_id,
pay_date,
SUM(amount) AS amount
FROM ods_platform_order
WHERE status = 1
GROUP BY game_id, user_id, pay_date
) a
INNER JOIN ods_platform_user b
ON a.user_id = b.user_id AND a.game_id = b.game_id
;