为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:centos7.6
【CPU】:X86
【问题描述】*:
select calcTime,riskvalue from risk_calculation_d PARTITION (p1,p2) where nodeid=1 and nodetype=1 and calctime > 1673971200000 AND calctime <= 1676563200000 order by calcTime desc
此条SQL在mysql上执行正常,在DM上执行报错,当PARTITION(p1)单个的时候执行正常;
DM上是不是不支持PARTITION(p1,p2)多表查询这种形式?
目前不支持这种语法。
DM里是将每一个分区视为一个子表的,例如P1就是原表名_P1这个子表。
可以把这个SQL改成
select … from P1子表 where …
union all
select … from P2子表 where …
或者
select … from PARTITION(p1) where …
union all
select … from PARTITION(p2) where …
目前好像只支持这几种
SELECT * FROM STUDENT; //查询水平分区父表
SELECT * FROM STUDENT PARTITION(P1); //查询一级分区子表
SELECT * FROM STUDENT SUBPARTITION(P1_Q1); //查询二级分区子表
SELECT * FROM STUDENT SUBPARTITION(P1_Q1_R1); //查询三级分区子表