提交4
This commit is contained in:
parent
5f096b2d69
commit
6e036cc51b
248
996/doirs/dhsf_engine.sql
Normal file
248
996/doirs/dhsf_engine.sql
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
CREATE TABLE `ods_active_role` ( `game_id` INT NOT NULL, `role_id` VARCHAR(64) NOT NULL, `ds` VARCHAR(64) NOT NULL, `user_account` varchar(64), `server_id` INT, `role_name` VARCHAR(50), `create_time` BIGINT) UNIQUE KEY (`game_id`, `role_id`,`ds`) DISTRIBUTED BY HASH ( `game_id`, `role_id`) BUCKETS 10
|
||||||
|
|
||||||
|
CREATE TABLE `ods_platform_order` (
|
||||||
|
`game_id` INT NOT NULL,
|
||||||
|
`order_id` varchar(100) NOT NULL,
|
||||||
|
`game_name` varchar(30),
|
||||||
|
`user_id` int,
|
||||||
|
`user_account` varchar(50),
|
||||||
|
`user_nickname` varchar(30),
|
||||||
|
`role_id` varchar(50),
|
||||||
|
`role_name` varchar(100),
|
||||||
|
`server_id` varchar(50),
|
||||||
|
`server_name` varchar(30),
|
||||||
|
`platform_id` INT,
|
||||||
|
`promote_id` INT,
|
||||||
|
`amount` DECIMAL(10, 2),
|
||||||
|
`status` tinyint NOT NULL,
|
||||||
|
`pay_time` INT,
|
||||||
|
`pay_way` tinyint,
|
||||||
|
`pay_company` varchar(20),
|
||||||
|
`ip` varchar(50),
|
||||||
|
`is_box_pay` tinyint,
|
||||||
|
`scene` tinyint,
|
||||||
|
`prod_id` INT,
|
||||||
|
`prod_name` varchar(30),
|
||||||
|
`main_server_id` INT,
|
||||||
|
`refund_type` tinyint
|
||||||
|
|
||||||
|
) UNIQUE KEY ( `game_id`,`order_id`) DISTRIBUTED BY HASH ( `game_id`,`order_id`) BUCKETS 32
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `ods_platform_user` (
|
||||||
|
`game_id` INT NOT NULL,
|
||||||
|
`user_id` BIGINT NOT NULL,
|
||||||
|
`user_account` varchar(30),
|
||||||
|
`platform_id` INT,
|
||||||
|
`promote_id` INT,
|
||||||
|
`create_time` BIGINT,
|
||||||
|
`channel` varchar(20)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (`game_id`, `user_id`)
|
||||||
|
DISTRIBUTED BY HASH (`game_id`, `user_id`) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `ods_role` (
|
||||||
|
`game_id` INT NOT NULL COMMENT "游戏ID",
|
||||||
|
`server_id` INT NOT NULL COMMENT "服务器ID",
|
||||||
|
`role_id` VARCHAR(64) NOT NULL COMMENT "角色ID",
|
||||||
|
`user_account` VARCHAR(64) COMMENT "用户账号",
|
||||||
|
`role_name` VARCHAR(64) COMMENT "角色名称",
|
||||||
|
`job` INT COMMENT "职业",
|
||||||
|
`level` INT COMMENT "等级",
|
||||||
|
`exp` BIGINT COMMENT "经验值",
|
||||||
|
`relevel` INT COMMENT "转生等级",
|
||||||
|
`platform_id` VARCHAR(64) COMMENT "平台ID",
|
||||||
|
`create_time` DATETIME COMMENT "创建时间", -- 修正:TIMESTAMP → DATETIME
|
||||||
|
`ds` VARCHAR(64) COMMENT "日期分区", -- 优化:VARCHAR → DATE
|
||||||
|
`main_server_id` INT COMMENT "主服ID"
|
||||||
|
)
|
||||||
|
ENGINE = OLAP -- 必须显式指定表引擎[1,6](@ref)
|
||||||
|
UNIQUE KEY (`game_id`, `server_id`, `role_id`)
|
||||||
|
|
||||||
|
DISTRIBUTED BY HASH (`game_id`, `server_id`, `role_id`) BUCKETS 32
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE TABLE ods_role_duration (
|
||||||
|
game_id INT NOT NULL,
|
||||||
|
server_id INT NOT NULL,
|
||||||
|
role_id VARCHAR(64) NOT NULL,
|
||||||
|
create_time DATETIME,
|
||||||
|
user_account VARCHAR(64),
|
||||||
|
duration INT,
|
||||||
|
level INT,
|
||||||
|
role_name VARCHAR(64)
|
||||||
|
) UNIQUE KEY (game_id, server_id, role_id, create_time)
|
||||||
|
DISTRIBUTED BY HASH (game_id, server_id, role_id, create_time) BUCKETS 32
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_order (
|
||||||
|
game_id int NOT NULL,
|
||||||
|
order_id VARCHAR(64) NOT NULL,
|
||||||
|
status int NOT NULL,
|
||||||
|
user_account VARCHAR(64),
|
||||||
|
role_id VARCHAR(64),
|
||||||
|
server_id int,
|
||||||
|
platform_id VARCHAR(64),
|
||||||
|
product_id VARCHAR(64),
|
||||||
|
amount bigint,
|
||||||
|
create_time DATETIME,
|
||||||
|
ds VARCHAR(64),
|
||||||
|
receive_time DATETIME,
|
||||||
|
pay_company VARCHAR(64),
|
||||||
|
pay_type int
|
||||||
|
|
||||||
|
)
|
||||||
|
UNIQUE KEY (game_id, order_id, status)
|
||||||
|
DISTRIBUTED BY HASH (game_id, order_id, status) BUCKETS 32;
|
||||||
|
|
||||||
|
CREATE TABLE ods_server_user (
|
||||||
|
game_id int NOT NULL,
|
||||||
|
server_id int NOT NULL,
|
||||||
|
user_account VARCHAR(64) NOT NULL,
|
||||||
|
role_id VARCHAR(64),
|
||||||
|
role_name VARCHAR(64),
|
||||||
|
|
||||||
|
platform_id VARCHAR(64),
|
||||||
|
create_time DATETIME,
|
||||||
|
ds VARCHAR(64)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (game_id, server_id, user_account) DISTRIBUTED BY HASH (game_id, server_id, user_account) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_user (
|
||||||
|
game_id int NOT NULL,
|
||||||
|
user_account VARCHAR(64) NOT NULL,
|
||||||
|
role_id VARCHAR(64),
|
||||||
|
role_name VARCHAR(64),
|
||||||
|
server_id int,
|
||||||
|
platform_id VARCHAR(64),
|
||||||
|
create_time DATETIME,
|
||||||
|
ds VARCHAR(64)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (game_id, user_account) DISTRIBUTED BY HASH (game_id, user_account) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_platform_user (
|
||||||
|
game_id int NOT NULL,
|
||||||
|
user_id int NOT NULL,
|
||||||
|
user_account VARCHAR,
|
||||||
|
platform_id int,
|
||||||
|
promote_id int,
|
||||||
|
create_time bigint,
|
||||||
|
channel VARCHAR
|
||||||
|
)
|
||||||
|
UNIQUE KEY (game_id, user_id) DISTRIBUTED BY HASH (game_id, user_id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_platform_login (
|
||||||
|
game_id int NOT NULL,
|
||||||
|
user_id bigint NOT NULL,
|
||||||
|
user_account VARCHAR(100),
|
||||||
|
promote_id int,
|
||||||
|
platform_id int,
|
||||||
|
login_time int NOT NULL,
|
||||||
|
login_ip VARCHAR(50)
|
||||||
|
) ENGINE = OLAP DISTRIBUTED BY HASH (game_id, user_id) BUCKETS 32
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE juhe_user (
|
||||||
|
id bigint NOT NULL,
|
||||||
|
account VARCHAR,
|
||||||
|
register_time bigint,
|
||||||
|
register_ip VARCHAR,
|
||||||
|
external_id VARCHAR,
|
||||||
|
device_id VARCHAR,
|
||||||
|
game_id int,
|
||||||
|
game_name VARCHAR,
|
||||||
|
device VARCHAR,
|
||||||
|
channel_id VARCHAR,
|
||||||
|
package_id VARCHAR,
|
||||||
|
channel VARCHAR,
|
||||||
|
channel_uid VARCHAR
|
||||||
|
)
|
||||||
|
UNIQUE KEY (id) DISTRIBUTED BY HASH (id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE juhe_order (
|
||||||
|
id bigint NOT NULL,
|
||||||
|
user_external_id VARCHAR,
|
||||||
|
game_identient VARCHAR,
|
||||||
|
game_name VARCHAR,
|
||||||
|
server_id VARCHAR,
|
||||||
|
server_name VARCHAR,
|
||||||
|
game_player_id VARCHAR,
|
||||||
|
game_player_name VARCHAR,
|
||||||
|
order_number VARCHAR,
|
||||||
|
game_order_number VARCHAR,
|
||||||
|
pay_order_number VARCHAR,
|
||||||
|
product_id VARCHAR,
|
||||||
|
props_name VARCHAR,
|
||||||
|
pay_amount DECIMAL(10,2),
|
||||||
|
create_time bigint,
|
||||||
|
pay_time bigint,
|
||||||
|
pay_status int,
|
||||||
|
pay_game_status int,
|
||||||
|
ip VARCHAR,
|
||||||
|
deviceinfo VARCHAR,
|
||||||
|
channel_id VARCHAR,
|
||||||
|
package_id VARCHAR,
|
||||||
|
channel VARCHAR
|
||||||
|
)
|
||||||
|
UNIQUE KEY (id) DISTRIBUTED BY HASH (id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE game_server (
|
||||||
|
game_id int NOT NULL,
|
||||||
|
id int NOT NULL,
|
||||||
|
mid int,
|
||||||
|
name VARCHAR(50),
|
||||||
|
isconfirm tinyint,
|
||||||
|
del tinyint,
|
||||||
|
state tinyint,
|
||||||
|
open_time int,
|
||||||
|
space_id int,
|
||||||
|
space_type tinyint,
|
||||||
|
engine_version VARCHAR(255),
|
||||||
|
server_type VARCHAR(16),
|
||||||
|
kuafu_game_id VARCHAR(20)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (game_id, id) DISTRIBUTED BY HASH (game_id, id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE gm_space (
|
||||||
|
id int NOT NULL,
|
||||||
|
gm_uid int NOT NULL,
|
||||||
|
space_name VARCHAR(50),
|
||||||
|
space_type int,
|
||||||
|
buy_time int,
|
||||||
|
stime int,
|
||||||
|
etime int,
|
||||||
|
server_id int,
|
||||||
|
state tinyint
|
||||||
|
)
|
||||||
|
UNIQUE KEY (id) DISTRIBUTED BY HASH (id) BUCKETS 32;
|
||||||
|
|
||||||
|
CREATE TABLE ods_across_server (
|
||||||
|
id int NOT NULL,
|
||||||
|
game_id int NOT NULL,
|
||||||
|
serverids VARCHAR(100),
|
||||||
|
status tinyint,
|
||||||
|
create_time DATETIME NOT NULL
|
||||||
|
)
|
||||||
|
UNIQUE KEY (id) DISTRIBUTED BY HASH (id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE cq_game_merge (
|
||||||
|
id bigint NOT NULL,
|
||||||
|
game_id int,
|
||||||
|
start_id int,
|
||||||
|
end_ids VARCHAR,
|
||||||
|
isconfirm int,
|
||||||
|
merge_time int
|
||||||
|
)
|
||||||
|
UNIQUE KEY (id) DISTRIBUTED BY HASH (id) BUCKETS 32;
|
239
996/doirs/sdk_statis.sql
Normal file
239
996/doirs/sdk_statis.sql
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
CREATE TABLE ods_active_account (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
channel VARCHAR(64) NOT NULL,
|
||||||
|
user_id VARCHAR(64) NOT NULL,
|
||||||
|
ds VARCHAR(64) NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
sdk_ver VARCHAR(64),
|
||||||
|
country VARCHAR(64),
|
||||||
|
province VARCHAR(64),
|
||||||
|
city VARCHAR(64),
|
||||||
|
isp VARCHAR(64),
|
||||||
|
ip VARCHAR(64),
|
||||||
|
device_width int,
|
||||||
|
device_height int,
|
||||||
|
device_id VARCHAR(64),
|
||||||
|
device_lang VARCHAR(64),
|
||||||
|
device_model VARCHAR(64),
|
||||||
|
device_brand VARCHAR(64),
|
||||||
|
device_os VARCHAR(64),
|
||||||
|
device_type VARCHAR(64),
|
||||||
|
event_time bigint,
|
||||||
|
servid VARCHAR(64),
|
||||||
|
role_id VARCHAR(64)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, channel, user_id, ds) DISTRIBUTED BY HASH (appid, channel, user_id, ds) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_active_device (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
device_id VARCHAR(64) NOT NULL,
|
||||||
|
channel VARCHAR(64) NOT NULL,
|
||||||
|
ds VARCHAR(64) NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
sdk_ver VARCHAR(64),
|
||||||
|
country VARCHAR(64),
|
||||||
|
province VARCHAR(64),
|
||||||
|
city VARCHAR(64),
|
||||||
|
isp VARCHAR(64),
|
||||||
|
ip VARCHAR(64),
|
||||||
|
device_width int,
|
||||||
|
device_height int,
|
||||||
|
device_lang VARCHAR(64),
|
||||||
|
device_model VARCHAR(64),
|
||||||
|
device_brand VARCHAR(64),
|
||||||
|
device_os VARCHAR(64),
|
||||||
|
device_type VARCHAR(64),
|
||||||
|
event_time bigint,
|
||||||
|
user_id VARCHAR(64),
|
||||||
|
servid VARCHAR(64),
|
||||||
|
role_id VARCHAR(64)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, device_id, channel, ds) DISTRIBUTED BY HASH (appid, device_id, channel, ds) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_active_role (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
channel VARCHAR(64) NOT NULL,
|
||||||
|
role_id VARCHAR(64) NOT NULL,
|
||||||
|
ds VARCHAR(64) NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
sdk_ver VARCHAR(64),
|
||||||
|
country VARCHAR(64),
|
||||||
|
province VARCHAR(64),
|
||||||
|
city VARCHAR(64),
|
||||||
|
isp VARCHAR(64),
|
||||||
|
ip VARCHAR(64),
|
||||||
|
device_id VARCHAR(64),
|
||||||
|
device_model VARCHAR(64),
|
||||||
|
device_brand VARCHAR(64),
|
||||||
|
device_os VARCHAR(64),
|
||||||
|
device_type VARCHAR(64),
|
||||||
|
event_time bigint,
|
||||||
|
user_id VARCHAR(64),
|
||||||
|
servid VARCHAR(64),
|
||||||
|
job_id VARCHAR(64),
|
||||||
|
role_level VARCHAR(64),
|
||||||
|
role_name VARCHAR(64),
|
||||||
|
job_name VARCHAR(64),
|
||||||
|
server_name VARCHAR(64)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, channel, role_id, ds) DISTRIBUTED BY HASH (appid, channel, role_id, ds) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_newly_account (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
user_id VARCHAR(64) NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
sdk_ver VARCHAR(64),
|
||||||
|
channel VARCHAR(64),
|
||||||
|
country VARCHAR(64),
|
||||||
|
province VARCHAR(64),
|
||||||
|
city VARCHAR(64),
|
||||||
|
isp VARCHAR(64),
|
||||||
|
ip VARCHAR(64),
|
||||||
|
device_width int,
|
||||||
|
device_height int,
|
||||||
|
device_id VARCHAR(64),
|
||||||
|
device_lang VARCHAR(64),
|
||||||
|
device_model VARCHAR(64),
|
||||||
|
device_brand VARCHAR(64),
|
||||||
|
device_os VARCHAR(64),
|
||||||
|
device_type VARCHAR(64),
|
||||||
|
event_time bigint,
|
||||||
|
ds VARCHAR(64) NOT NULL
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, user_id) DISTRIBUTED BY HASH (appid, user_id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_newly_device (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
device_id VARCHAR(64) NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
sdk_ver VARCHAR(64),
|
||||||
|
channel VARCHAR(64),
|
||||||
|
country VARCHAR(64),
|
||||||
|
province VARCHAR(64),
|
||||||
|
city VARCHAR(64),
|
||||||
|
isp VARCHAR(64),
|
||||||
|
ip VARCHAR(64),
|
||||||
|
device_width int,
|
||||||
|
device_height int,
|
||||||
|
device_lang VARCHAR(64),
|
||||||
|
device_model VARCHAR(64),
|
||||||
|
device_brand VARCHAR(64),
|
||||||
|
device_os VARCHAR(64),
|
||||||
|
device_type VARCHAR(64),
|
||||||
|
event_time bigint,
|
||||||
|
user_id VARCHAR(64),
|
||||||
|
ds VARCHAR(64) NOT NULL
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, device_id) DISTRIBUTED BY HASH (appid, device_id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_newly_role (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
|
||||||
|
role_id VARCHAR(64) NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
sdk_ver VARCHAR(64),
|
||||||
|
channel VARCHAR(64),
|
||||||
|
country VARCHAR(64),
|
||||||
|
province VARCHAR(64),
|
||||||
|
city VARCHAR(64),
|
||||||
|
isp VARCHAR(64),
|
||||||
|
ip VARCHAR(64),
|
||||||
|
device_id VARCHAR(64),
|
||||||
|
device_model VARCHAR(64),
|
||||||
|
device_brand VARCHAR(64),
|
||||||
|
device_os VARCHAR(64),
|
||||||
|
device_type VARCHAR(64),
|
||||||
|
event_time bigint,
|
||||||
|
user_id VARCHAR(64),
|
||||||
|
servid VARCHAR(64),
|
||||||
|
|
||||||
|
ds VARCHAR(64) NOT NULL,
|
||||||
|
job_id VARCHAR(64),
|
||||||
|
role_level VARCHAR(64),
|
||||||
|
role_name VARCHAR(64),
|
||||||
|
job_name VARCHAR(64),
|
||||||
|
server_name VARCHAR(64)
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, role_id) DISTRIBUTED BY HASH (appid, role_id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_payment_object (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
channel VARCHAR(64) NOT NULL,
|
||||||
|
typd VARCHAR(64) NOT NULL,
|
||||||
|
typv VARCHAR(64) NOT NULL,
|
||||||
|
ds VARCHAR(64) NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
event_time bigint
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, channel, typd, typv, ds) DISTRIBUTED BY HASH (appid, channel, typd, typv, ds) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE ods_payment_order (
|
||||||
|
appid bigint NOT NULL,
|
||||||
|
order_id VARCHAR(64) NOT NULL,
|
||||||
|
status int NOT NULL,
|
||||||
|
gmid bigint,
|
||||||
|
app_ver VARCHAR(64),
|
||||||
|
sdk_ver VARCHAR(64),
|
||||||
|
channel VARCHAR(64),
|
||||||
|
country VARCHAR(64),
|
||||||
|
province VARCHAR(64),
|
||||||
|
city VARCHAR(64),
|
||||||
|
isp VARCHAR(64),
|
||||||
|
ip VARCHAR(64),
|
||||||
|
device_id VARCHAR(64),
|
||||||
|
device_model VARCHAR(64),
|
||||||
|
device_brand VARCHAR(64),
|
||||||
|
device_os VARCHAR(64),
|
||||||
|
device_type VARCHAR(64),
|
||||||
|
event_time bigint,
|
||||||
|
user_id VARCHAR(64),
|
||||||
|
amount bigint,
|
||||||
|
platform VARCHAR(64),
|
||||||
|
servid VARCHAR(64),
|
||||||
|
role_id VARCHAR(64),
|
||||||
|
prodid VARCHAR(64),
|
||||||
|
prod_name VARCHAR(64),
|
||||||
|
ds VARCHAR(64) NOT NULL
|
||||||
|
)
|
||||||
|
UNIQUE KEY (appid, order_id, status) DISTRIBUTED BY HASH (appid, order_id, status) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE game_channel (
|
||||||
|
id VARCHAR NOT NULL,
|
||||||
|
name VARCHAR,
|
||||||
|
game_id bigint
|
||||||
|
) UNIQUE KEY (id) DISTRIBUTED BY HASH (id) BUCKETS 32;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE gm_apply (
|
||||||
|
id bigint NOT NULL,
|
||||||
|
name VARCHAR,
|
||||||
|
platform bigint,
|
||||||
|
status bigint,
|
||||||
|
uid bigint,
|
||||||
|
account VARCHAR,
|
||||||
|
create_time bigint,
|
||||||
|
bind_game_id bigint,
|
||||||
|
bind_type bigint,
|
||||||
|
bind_appid bigint,
|
||||||
|
bind_game_type bigint,
|
||||||
|
appid VARCHAR
|
||||||
|
)
|
||||||
|
UNIQUE KEY (id) DISTRIBUTED BY HASH (id) BUCKETS 32;
|
||||||
|
|
33
996/doirs/备份语句.sql
Normal file
33
996/doirs/备份语句.sql
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
show load warnings on 'http://10.0.8.10:8040/api/_load_error_log?file=__shard_8/error_log_insert_stmt_74aeb570d44748a-a0f64c2db75e399c_74aeb570d44748a_a0f64c2db75e399c'
|
||||||
|
|
||||||
|
|
||||||
|
SHOW PARTITIONS FROM ods_active_account;
|
||||||
|
|
||||||
|
CREATE TABLE `dwd_retention_act_m` (
|
||||||
|
`game_id` int NOT NULL,
|
||||||
|
`user_id` bigint NOT NULL,
|
||||||
|
`ds` date NULL,
|
||||||
|
`rd` int NULL
|
||||||
|
) ENGINE = OLAP
|
||||||
|
DUPLICATE KEY(`game_id`, `user_id`, `ds`, rd)
|
||||||
|
PARTITION BY RANGE(`ds`) (
|
||||||
|
-- 手动添加预建分区(示例:2025-02-01 至 2025-07-01)
|
||||||
|
PARTITION p202502 VALUES LESS THAN ("2025-03-01"),
|
||||||
|
PARTITION p202503 VALUES LESS THAN ("2025-04-01"),
|
||||||
|
PARTITION p202504 VALUES LESS THAN ("2025-05-01"),
|
||||||
|
PARTITION p202505 VALUES LESS THAN ("2025-06-01"),
|
||||||
|
PARTITION p202506 VALUES LESS THAN ("2025-07-01")
|
||||||
|
)
|
||||||
|
DISTRIBUTED BY HASH(ds, `game_id`) BUCKETS 32
|
||||||
|
PROPERTIES (
|
||||||
|
"min_load_replica_num" = "1", -- 建议≥1,避免写入失败
|
||||||
|
"dynamic_partition.enable" = "true",
|
||||||
|
"dynamic_partition.time_unit" = "MONTH",
|
||||||
|
"dynamic_partition.time_zone" = "Asia/Shanghai",
|
||||||
|
"dynamic_partition.start" = "-5", -- 关键修改:创建过去5个月分区
|
||||||
|
"dynamic_partition.end" = "3", -- 保留未来3个月分区
|
||||||
|
"dynamic_partition.buckets" = "32",
|
||||||
|
"dynamic_partition.prefix" = "p", -- 建议用短前缀(如"p")
|
||||||
|
"dynamic_partition.history_partition_num" = "5", -- 保留历史分区数
|
||||||
|
"storage_medium" = "hdd"
|
||||||
|
);
|
75
996/doirs/建表语句.sql
Normal file
75
996/doirs/建表语句.sql
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
CREATE TABLE `yin_tmp` (
|
||||||
|
`game_id` int NOT NULL,
|
||||||
|
`role_id` varchar(64) NOT NULL,
|
||||||
|
`ds` date NOT NULL,
|
||||||
|
`server_id` int NULL,
|
||||||
|
`user_account` varchar(50) NULL
|
||||||
|
) ENGINE = OLAP UNIQUE KEY(`game_id`, `role_id`, `ds`) PARTITION BY RANGE(`ds`) () DISTRIBUTED BY HASH(`game_id`) BUCKETS 32 PROPERTIES (
|
||||||
|
"min_load_replica_num" = "-1", -- 不强制要求所有副本加载完成
|
||||||
|
"dynamic_partition.enable" = "true", -- 开启动态分区功能。Doris 将根据后续规则自动管理分区生命周期
|
||||||
|
"dynamic_partition.create_history_partition" = "true", -- 自动创建历史分区
|
||||||
|
"dynamic_partition.time_unit" = "DAY", -- 分区粒度按天划分
|
||||||
|
"dynamic_partition.time_zone" = "Asia/Shanghai", -- 指定分区生成的时区
|
||||||
|
"dynamic_partition.start" = "-185", -- 保留最近 185 天的分区
|
||||||
|
"dynamic_partition.end" = "3", -- 预创建未来 3 天的分区
|
||||||
|
"dynamic_partition.prefix" = "p_", -- 分区名前缀。
|
||||||
|
"storage_medium" = "hdd", -- 存储策略
|
||||||
|
"dynamic_partition.hot_partition_num" = "7" -- 最近7天分区存SSD
|
||||||
|
);
|
||||||
|
|
||||||
|
SHOW PARTITIONS FROM yin_tmp;
|
||||||
|
|
||||||
|
|
||||||
|
insert into yin_tmp (game_id, role_id, ds, server_id, user_account)
|
||||||
|
select '1' game_id,'1' role_id,STR_TO_DATE('20250626','%Y%m%d') ds,1 server_id,'1' user_account
|
||||||
|
|
||||||
|
|
||||||
|
show load warnings on 'http://10.0.8.10:8040/api/_load_error_log?file=__shard_740/error_log_insert_stmt_2fac3a52b4c74b34-b59367b2b7ec133c_2fac3a52b4c74b34_b59367b2b7ec133c'
|
||||||
|
|
||||||
|
|
||||||
|
drop table monthly_sales;
|
||||||
|
|
||||||
|
CREATE TABLE `dwd_platform_login_m` (
|
||||||
|
`game_id` int NOT NULL,
|
||||||
|
`user_id` bigint NOT NULL,
|
||||||
|
`ds` date NULL,
|
||||||
|
`user_account` varchar(100) NULL,
|
||||||
|
`promote_id` int NULL,
|
||||||
|
`platform_id` int NULL,
|
||||||
|
`login_time` int NOT NULL,
|
||||||
|
`login_ip` varchar(50) NULL
|
||||||
|
)
|
||||||
|
ENGINE = OLAP DUPLICATE KEY(`game_id`, `user_id`, `ds`)
|
||||||
|
PARTITION BY RANGE(`ds`) ()
|
||||||
|
DISTRIBUTED BY HASH(`game_id`) BUCKETS 32
|
||||||
|
PROPERTIES (
|
||||||
|
"min_load_replica_num" = "-1",
|
||||||
|
"dynamic_partition.enable" = "true",
|
||||||
|
"dynamic_partition.time_unit" = "MONTH",
|
||||||
|
"dynamic_partition.time_zone" = "Asia/Shanghai",
|
||||||
|
"dynamic_partition.start" = "-24",
|
||||||
|
"dynamic_partition.end" = "3",
|
||||||
|
"dynamic_partition.buckets" = "32",
|
||||||
|
"dynamic_partition.create_history_partition" = "true",
|
||||||
|
"dynamic_partition.prefix" = "p_",
|
||||||
|
"storage_medium" = "hdd"
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `dwd_retention_act` (
|
||||||
|
`game_id` int NOT NULL,
|
||||||
|
`user_id` bigint NOT NULL,
|
||||||
|
`ds` date NULL,
|
||||||
|
`rd` int NULL
|
||||||
|
) ENGINE = OLAP DUPLICATE KEY(`game_id`, `user_id`, `ds`,rd) PARTITION BY RANGE(`ds`) () DISTRIBUTED BY HASH(ds,`game_id`) BUCKETS 32 PROPERTIES (
|
||||||
|
"min_load_replica_num" = "-1",
|
||||||
|
"dynamic_partition.enable" = "true",
|
||||||
|
"dynamic_partition.time_unit" = "DAY",
|
||||||
|
"dynamic_partition.time_zone" = "Asia/Shanghai",
|
||||||
|
"dynamic_partition.start" = "-24",
|
||||||
|
"dynamic_partition.end" = "3",
|
||||||
|
"dynamic_partition.buckets" = "32",
|
||||||
|
"dynamic_partition.create_history_partition" = "true",
|
||||||
|
"dynamic_partition.prefix" = "p_",
|
||||||
|
"storage_medium" = "hdd"
|
||||||
|
);
|
10314
996/doirs/日期表.sql
Normal file
10314
996/doirs/日期表.sql
Normal file
File diff suppressed because it is too large
Load Diff
82
996/doirs/物化视图.sql
Normal file
82
996/doirs/物化视图.sql
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
刷新配置
|
||||||
|
build_mode 刷新时机
|
||||||
|
物化视图创建完成是否立即刷新。
|
||||||
|
|
||||||
|
IMMEDIATE:立即刷新,默认方式。
|
||||||
|
DEFERRED:延迟刷新。
|
||||||
|
refresh_method 刷新方式
|
||||||
|
COMPLETE:刷新所有分区。
|
||||||
|
AUTO:尽量增量刷新,只刷新自上次物化刷新后数据变化的分区,如果不能感知数据变化的分区,只能退化成全量刷新,刷新所有分区。
|
||||||
|
refresh_trigger 触发方式
|
||||||
|
ON MANUAL 手动触发
|
||||||
|
|
||||||
|
用户通过 SQL 语句触发物化视图的刷新,策略如下
|
||||||
|
|
||||||
|
--检测基表的分区数据自上次刷新后是否有变化,刷新数据变化的分区
|
||||||
|
REFRESH MATERIALIZED VIEW mvName AUTO;
|
||||||
|
--不校验基表的分区数据自上次刷新后是否有变化,直接刷新物化视图的所有分区。
|
||||||
|
REFRESH MATERIALIZED VIEW mvName COMPLETE;
|
||||||
|
--只刷新指定的分区。
|
||||||
|
REFRESH MATERIALIZED VIEW mvName partitions(partitionName1,partitionName2);
|
||||||
|
--ON SCHEDULE 定时触发
|
||||||
|
-- 定时全量
|
||||||
|
CREATE MATERIALIZED VIEW mv_6
|
||||||
|
REFRESH COMPLETE ON SCHEDULE EVERY 10 hour
|
||||||
|
AS
|
||||||
|
SELECT * FROM lineitem;
|
||||||
|
-- 定时增量
|
||||||
|
CREATE MATERIALIZED VIEW mv_8
|
||||||
|
REFRESH AUTO ON COMMIT
|
||||||
|
PARTITION by(l_shipdate)
|
||||||
|
AS
|
||||||
|
SELECT * FROM lineitem;
|
||||||
|
--ON COMMIT 自动触发 (Apache Doris 2.1.4 版本起支持此功能)
|
||||||
|
CREATE MATERIALIZED VIEW mv_8
|
||||||
|
REFRESH AUTO ON COMMIT
|
||||||
|
PARTITION by(l_shipdate)
|
||||||
|
AS
|
||||||
|
SELECT * FROM lineitem;
|
||||||
|
-- BUILD IMMEDIATE 创建完立即刷新
|
||||||
|
CREATE MATERIALIZED VIEW mv_1_0
|
||||||
|
BUILD IMMEDIATE
|
||||||
|
REFRESH AUTO
|
||||||
|
ON MANUAL
|
||||||
|
DISTRIBUTED BY RANDOM BUCKETS 2
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
l_linestatus,
|
||||||
|
to_date(o_orderdate) as date_alias,
|
||||||
|
o_shippriority
|
||||||
|
FROM
|
||||||
|
orders
|
||||||
|
LEFT JOIN lineitem ON l_orderkey = o_orderkey;
|
||||||
|
-- 延迟刷新 BUILD DEFERRED
|
||||||
|
CREATE MATERIALIZED VIEW mv_1_1
|
||||||
|
BUILD DEFERRED
|
||||||
|
REFRESH COMPLETE
|
||||||
|
ON SCHEDULE EVERY 1 DAY STARTS '2024-12-01 20:30:00'
|
||||||
|
PROPERTIES ('replication_num' = '1')
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
l_linestatus,
|
||||||
|
to_date(o_orderdate) as date_alias,
|
||||||
|
o_shippriority
|
||||||
|
FROM
|
||||||
|
orders
|
||||||
|
LEFT JOIN lineitem ON l_orderkey = o_orderkey;
|
||||||
|
|
||||||
|
-------
|
||||||
|
CREATE MATERIALIZED VIEW mv_yinzhou
|
||||||
|
BUILD IMMEDIATE -- 创建后立即全量刷新
|
||||||
|
REFRESH AUTO -- 优先增量刷新(仅刷新变化分区)
|
||||||
|
ON SCHEDULE EVERY 1 DAY -- 每日执行一次
|
||||||
|
STARTS '2025-06-27 03:15:00' -- 首次刷新时间(次日凌晨3:15)
|
||||||
|
DISTRIBUTED BY HASH(l_linestatus) BUCKETS AUTO -- 自动分桶
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
l_linestatus,
|
||||||
|
to_date(o_orderdate) as date_alias,
|
||||||
|
o_shippriority
|
||||||
|
FROM
|
||||||
|
orders
|
||||||
|
LEFT JOIN lineitem ON l_orderkey = o_orderkey;
|
32
996/doirs/物化视图1.sql
Normal file
32
996/doirs/物化视图1.sql
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
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
|
||||||
|
;
|
30
996/pg/分区表.sql
Normal file
30
996/pg/分区表.sql
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE active_account_list (
|
||||||
|
game_identity TEXT NOT NULL,
|
||||||
|
platform_id INTEGER NOT NULL,
|
||||||
|
channel_id INTEGER NOT NULL,
|
||||||
|
user_id TEXT NOT NULL,
|
||||||
|
ds DATE NOT NULL,
|
||||||
|
create_time TIMESTAMPTZ NOT NULL,
|
||||||
|
receive_time TIMESTAMPTZ,
|
||||||
|
PRIMARY KEY (game_identity, platform_id, channel_id, user_id, ds)
|
||||||
|
) PARTITION BY RANGE (ds);
|
||||||
|
|
||||||
|
CREATE EXTENSION pg_partman;
|
||||||
|
|
||||||
|
SELECT extname, extversion FROM pg_extension WHERE extname = 'pg_partman';
|
||||||
|
|
||||||
|
SELECT e.extname, n.nspname
|
||||||
|
FROM pg_extension e
|
||||||
|
JOIN pg_namespace n ON e.extnamespace = n.oid
|
||||||
|
WHERE e.extname = 'pg_partman';
|
||||||
|
|
||||||
|
|
||||||
|
SELECT public.create_parent(
|
||||||
|
p_parent_table => 'public.active_account_list',
|
||||||
|
p_control => 'ds', -- 分区键字段
|
||||||
|
p_interval => '1 day', -- 按天分区
|
||||||
|
p_premake => 30 -- 预创建未来30天分区
|
||||||
|
);
|
||||||
|
|
1
996/动态表/1备份
Normal file
1
996/动态表/1备份
Normal file
@ -0,0 +1 @@
|
|||||||
|
REFRESH DYNAMIC TABLE ods.yinzhou_dynamic_demo;
|
52
996/动态表/建表.sql
Normal file
52
996/动态表/建表.sql
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
BEGIN;
|
||||||
|
|
||||||
|
/*
|
||||||
|
DROP TABLE ods.yinzhou_dynamic_demo;
|
||||||
|
*/
|
||||||
|
|
||||||
|
-- Type: TABLE ; Name: yinzhou_dynamic_demo; Owner: sdk_statis_test_developer
|
||||||
|
|
||||||
|
SET LOCAL SEARCH_PATH TO 'public';
|
||||||
|
CREATE DYNAMIC TABLE ods.yinzhou_dynamic_demo (
|
||||||
|
ds,
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
device_cut,
|
||||||
|
user_cut
|
||||||
|
)with (
|
||||||
|
orientation = 'column',
|
||||||
|
storage_format = 'orc',
|
||||||
|
binlog_level = 'replica',
|
||||||
|
binlog_ttl = '864000',
|
||||||
|
bitmap_columns = 'ds,name',
|
||||||
|
dictionary_encoding_columns = 'ds:auto,name:auto',
|
||||||
|
distribution_key = 'ds,id',
|
||||||
|
table_group = 'sdk_statis_test_tg_default',
|
||||||
|
table_storage_mode = 'hot',
|
||||||
|
time_to_live_in_seconds = '3153600000',
|
||||||
|
auto_refresh_enable='true',
|
||||||
|
full_auto_refresh_interval='1 hour',
|
||||||
|
full_auto_refresh_schd_start_time='immediate',
|
||||||
|
full_guc_hg_computing_resource='local',
|
||||||
|
refresh_mode='full'
|
||||||
|
) AS SELECT
|
||||||
|
t1.ds,t2.ID,
|
||||||
|
t2.NAME,
|
||||||
|
UNIQ ( device_id ) device_cut,
|
||||||
|
UNIQ ( user_id ) user_cut
|
||||||
|
FROM
|
||||||
|
"ods_track_log" t1
|
||||||
|
INNER JOIN "public"."gm_apply" FOR SYSTEM_TIME AS OF PROCTIME() t2
|
||||||
|
ON t1.appid = t2."id"
|
||||||
|
GROUP BY
|
||||||
|
t1.ds,
|
||||||
|
t2.ID,
|
||||||
|
t2.NAME;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
COMMENT ON TABLE ods.yinzhou_dynamic_demo IS NULL;
|
||||||
|
ALTER TABLE ods.yinzhou_dynamic_demo OWNER TO sdk_statis_test_developer;
|
||||||
|
|
||||||
|
|
||||||
|
END;
|
43
996/动态表/建表1.sql
Normal file
43
996/动态表/建表1.sql
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
BEGIN;
|
||||||
|
|
||||||
|
CREATE DYNAMIC TABLE ods.yinzhou_dynamic_demo2 (
|
||||||
|
ds,
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
device_cut,
|
||||||
|
user_cut
|
||||||
|
)with (
|
||||||
|
orientation = 'column',
|
||||||
|
storage_format = 'orc',
|
||||||
|
binlog_level = 'replica',
|
||||||
|
binlog_ttl = '864000',
|
||||||
|
bitmap_columns = 'ds,name',
|
||||||
|
clustering_key = 'ds,id,name',
|
||||||
|
dictionary_encoding_columns = 'ds:auto,name:auto',
|
||||||
|
distribution_key = 'ds,id',
|
||||||
|
table_group = 'sdk_statis_test_tg_default',
|
||||||
|
table_storage_mode = 'hot',
|
||||||
|
time_to_live_in_seconds = '3153600000',
|
||||||
|
auto_refresh_enable='true',
|
||||||
|
incremental_auto_refresh_interval='2 minutes',
|
||||||
|
incremental_auto_refresh_schd_start_time='immediate',
|
||||||
|
incremental_guc_hg_computing_resource='local',
|
||||||
|
refresh_mode='incremental'
|
||||||
|
) AS SELECT
|
||||||
|
t1.ds,t2.ID,
|
||||||
|
t2.NAME,
|
||||||
|
UNIQ ( device_id ) device_cut,
|
||||||
|
UNIQ ( user_id ) user_cut
|
||||||
|
FROM
|
||||||
|
"ods_payment_order" t1
|
||||||
|
INNER JOIN "public"."gm_apply" FOR SYSTEM_TIME AS OF PROCTIME() t2
|
||||||
|
ON t1.appid = t2."id"
|
||||||
|
GROUP BY
|
||||||
|
t1.ds,
|
||||||
|
t2.ID,
|
||||||
|
t2.NAME;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
END;
|
137
test.sql
Normal file
137
test.sql
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
INSERT INTO ads_new_device_ltv_statis
|
||||||
|
SELECT appid, channel, ds, new_add, SUM(CASE
|
||||||
|
WHEN rd >= 0 AND pd <= 0 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv1, SUM(CASE
|
||||||
|
WHEN rd >= 1 AND pd <= 1 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv2, SUM(CASE
|
||||||
|
WHEN rd >= 2 AND pd <= 2 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv3, SUM(CASE
|
||||||
|
WHEN rd >= 3 AND pd <= 3 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv4, SUM(CASE
|
||||||
|
WHEN rd >= 4 AND pd <= 4 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv5, SUM(CASE
|
||||||
|
WHEN rd >= 5 AND pd <= 5 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv6, SUM(CASE
|
||||||
|
WHEN rd >= 6 AND pd <= 6 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv7, SUM(CASE
|
||||||
|
WHEN rd >= 7 AND pd <= 7 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv8, SUM(CASE
|
||||||
|
WHEN rd >= 8 AND pd <= 8 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv9, SUM(CASE
|
||||||
|
WHEN rd >= 9 AND pd <= 9 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv10, SUM(CASE
|
||||||
|
WHEN rd >= 10 AND pd <= 10 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv11, SUM(CASE
|
||||||
|
WHEN rd >= 11 AND pd <= 11 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv12, SUM(CASE
|
||||||
|
WHEN rd >= 12 AND pd <= 12 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv13, SUM(CASE
|
||||||
|
WHEN rd >= 13 AND pd <= 13 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv14, SUM(CASE
|
||||||
|
WHEN rd >= 14 AND pd <= 14 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv15, SUM(CASE
|
||||||
|
WHEN rd >= 15 AND pd <= 15 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv16, SUM(CASE
|
||||||
|
WHEN rd >= 16 AND pd <= 16 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv17, SUM(CASE
|
||||||
|
WHEN rd >= 17 AND pd <= 17 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv18, SUM(CASE
|
||||||
|
WHEN rd >= 18 AND pd <= 18 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv19, SUM(CASE
|
||||||
|
WHEN rd >= 19 AND pd <= 19 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv20, SUM(CASE
|
||||||
|
WHEN rd >= 20 AND pd <= 20 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv21, SUM(CASE
|
||||||
|
WHEN rd >= 21 AND pd <= 21 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv22, SUM(CASE
|
||||||
|
WHEN rd >= 22 AND pd <= 22 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv23, SUM(CASE
|
||||||
|
WHEN rd >= 23 AND pd <= 23 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv24, SUM(CASE
|
||||||
|
WHEN rd >= 24 AND pd <= 24 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv25, SUM(CASE
|
||||||
|
WHEN rd >= 25 AND pd <= 25 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv26, SUM(CASE
|
||||||
|
WHEN rd >= 26 AND pd <= 26 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv27, SUM(CASE
|
||||||
|
WHEN rd >= 27 AND pd <= 27 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv28, SUM(CASE
|
||||||
|
WHEN rd >= 28 AND pd <= 28 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv29, SUM(CASE
|
||||||
|
WHEN rd >= 29 AND pd <= 29 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv30, SUM(CASE
|
||||||
|
WHEN rd >= 30 AND pd <= 30 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv31, SUM(CASE
|
||||||
|
WHEN rd >= 45 AND pd <= 45 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv45, SUM(CASE
|
||||||
|
WHEN rd >= 60 AND pd <= 60 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv60, SUM(CASE
|
||||||
|
WHEN rd >= 90 AND pd <= 90 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv90, SUM(CASE
|
||||||
|
WHEN rd >= 120 AND pd <= 120 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv120, SUM(CASE
|
||||||
|
WHEN rd >= 150 AND pd <= 150 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv150, SUM(CASE
|
||||||
|
WHEN rd >= 180 AND pd <= 180 THEN payment_amount
|
||||||
|
ELSE 0
|
||||||
|
END) AS ltv180
|
||||||
|
FROM (
|
||||||
|
SELECT a.appid, a.channel, a.ds, a.newly_device AS new_add, TIMESTAMPDIFF(day, b.ds, a.ds) AS rd, b.rd AS pd,
|
||||||
|
b.payment_amount
|
||||||
|
FROM (
|
||||||
|
SELECT appid, (CASE
|
||||||
|
WHEN GROUPING(channel) = 0 THEN channel
|
||||||
|
ELSE '__default__'
|
||||||
|
END) AS channel, ds, COUNT(user_id) AS newly_device
|
||||||
|
FROM ods_newly_device
|
||||||
|
WHERE ds >= '${lastdate_180}' AND ds <= '${bizdate}'
|
||||||
|
GROUP BY GROUPING SETS((appid, ds), (appid, channel, ds))
|
||||||
|
) AS a
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT appid, channel, rd, ds, SUM(amount) AS payment_amount
|
||||||
|
FROM dwd_ltv_new_device
|
||||||
|
WHERE ds >= '${lastdate_180}' AND rd >= 0 AND rd <= 180
|
||||||
|
GROUP BY GROUPING SETS((appid, ds, rd), (appid, channel, ds, rd))
|
||||||
|
) AS b
|
||||||
|
ON a.appid = b.appid AND a.channel = b.channel AND a.ds = b.ds
|
||||||
|
) AS c
|
||||||
|
GROUP BY appid,
|
||||||
|
channel,
|
||||||
|
ds,
|
||||||
|
new_add;
|
Loading…
x
Reference in New Issue
Block a user