建表语句:
CREATE TABLE `recursive_fact_bai_01_number` (
`id` VARCHAR(20) NULL,
`j_interval_day_1` VARCHAR(1000) NULL,
`j_interval_day_2` VARCHAR(1000) NULL,
`k_number` DECIMAL(10, 0) NULL
) ENGINE=OLAP
DUPLICATE KEY(`id`)
COMMENT 'olap'
DISTRIBUTED BY HASH(`id`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
查询语句:
select min(k_number) a1,cast(J_INTERVAL_DAY_2 as char(100))
,first_value(cast(J_INTERVAL_DAY_2 as char(100)) ) over(partition by J_INTERVAL_DAY_1
order by cast(J_INTERVAL_DAY_1 as char(100)) ,cast(J_INTERVAL_DAY_2 as char(100))
,min(k_number)
rows between 2 preceding and unbounded following) a4
,grouping_id(cast(J_INTERVAL_DAY_1 as char(100)) ) a5
from recursive_fact_bai_01_number
where k_number=67
group by cube(J_INTERVAL_DAY_1 ,cast(J_INTERVAL_DAY_1 as char(100)) ,cast(J_INTERVAL_DAY_2 as char(100)) )
having grouping_id(cast(J_INTERVAL_DAY_1 as char(100)) ) =0
2.0.12 执行结果:
2.1.4执行结果:
去掉having过滤后,两个版本执行结果一致