条件下推(HAVING to WHERE)

PolarDB 支持条件下推(HAVING to WHERE)功能。...条件下推变换后结果为:SELECT t1.a,MAX(t1.b),t1.c FROM t1 WHERE((t1.a=t1.c)AND(t1.a>1))OR(t1.a)GROUP BY t1.a HAVING((t1.a=t1.c)AND(t1.a>1))OR((t1.a)AND(t1.c>3));

Persist plan and Query-Blocker

针对指定SQL Pattern,添加Hints 为相同Pattern的SQL,执行 nested loop join 策略,示例如下:/*+nested_loop_join=true*/PERSIST_PLAN SELECT t1.c1FROM t1 INNER JOIN t2 ON t1.c1=t2.c1 WHERE t1.c2;查询指定SQL是否配置过Hints ...

通过Hint干预执行计划

application_name|hints|MergeJoin(t1 t2)Leading((t2 t1))query_hash|-4733464863014584191 enable|t prepare_param_strings|{} 输出执行计划,语句如下:EXPLAIN SELECT*FROM t1,t2 WHERE t1.id=t2.id and t1.val< 100 andt2.val>1;...

使用Hint

强制t1表使用t1_val进行位图索引扫描:/*+Bitmapscan(t1 t1_val)*/EXPLAIN SELECT*FROM t1 JOIN t2 ON t1.val=t2.val;强制t1表进行仅索引扫描(IndexOnlyScan):/*+Indexonlyscan(t1)*/EXPLAIN SELECT t2.*,t1.val FROM t1 JOIN t2 ON t1....

并行查询Hint语法

t1表上做并行扫表,然后将数据按照t1.a列分发到下一层多个Worker上-在下一阶段多个Worker中完成聚集计算,结果汇总到Leader SELECT/*+PARALLEL(t1)PQ_GROUPBY(PQ_TWOPHASE_HASH)*/t1.a,sum(t1.b)FROM t as t1 GROUP BY t1.a;在t1表上做...

排序优化和执行

如下示例使用了MemSort算子:explain select t1.name from t1 join t2 on t1.id=t2.id order by t1.name,t2.name;返回信息如下:Project(name="name")MemSort(sort="name ASC,name0 ASC")Project(name="name",name0="name0")BKAJoin...

PyODPS的空值处理

CREATE TABLE tmp_pyodps_40755ebd_2d2a_482e_b360_3f3da0d5422c LIFECYCLE 1 AS SELECT t1.`id`,t1.`name`,IF(t1.`f1` IS NULL,t1.`f2`,t1.`f1`)AS `f1`,IF(t1.`f2` IS NULL,t1.`f2`,t1.`f2`)AS `f2`,IF(t1.`f3` IS NULL,t1.`f2`,t1.`f3`)...

HINT

INSERT/*+Leading(target(t1 t2))*/INTO target SELECT t1.a,t2.b FROM t1 JOIN t2 ON t1.a=t2.a-示例2:SELECT后的Hint只支持指定t1、t2为参数。INSERT INTO target SELECT/*+Leading(t2 t1)*/t1.a,t2.b FROM t1 JOIN t2 ON t1.a=t2.a;...

RDS for MySQL函数group_concat相关问题

查看当前会话的 group_concat_max_len 值 select group_concat(distinct concat_ws(' ',t1.col0,t1.col2,t1.col3,t1.col4)separator"-")from grp_con_test t1,grp_con_test t2 \G-查询结果 select length(group_concat(distinct concat_ws...

RDS for MySQL函数group_concat相关问题

查看当前会话的 group_concat_max_len 值 select group_concat(distinct concat_ws(' ',t1.col0,t1.col2,t1.col3,t1.col4)separator"-")from grp_con_test t1,grp_con_test t2 \G-查询结果 select length(group_concat(distinct concat_ws...

ODPS-0130252

错误码:ODPS-0130252:Cartesian product is not allowed 错误1:cartesian ...正确,补充join条件,由于join条件不是字段取值相等,因此需要指定mapjoin hint odps>select/*+mapjoin(t1)*/t1.*from src t1 join src t2 on t1.key>t2.key;

WITH子句

查询和分析语句*|with T1 AS(SELECT host,avg(request_length)length FROM website_log GROUP BY host),T2 AS(SELECT host,avg(request_length)length FROM access_log GROUP BY host)SELECT T1.host,T1.length,T2.length FROM T1 JOIN T2 ...

扫描全部/部分分库分表

在指定分库分表上执行,显式指定物理表名:SELECT/*+TDDL:scan('t1',real_table=("t1_00","t1_01"))*/COUNT(1)FROM t1 执行后会下发SQL语句到所有分库的 t1_00``t1_01 分表上,合并结果集后返回。在指定分库分表上执行,显式指定物理表名,...

UPDATE

您可以使用UPDATE语法修改表中符合条件的行。语法 单逻辑表 UPDATE[LOW_PRIORITY][IGNORE][schema_name.]tbl_...UPDATE t1,t2 SET t1.name=t2.name WHERE t1.id=t2.name LIMIT 10001;说明 t1和t2的拆分键为ID。相关文献 MySQL UPDATE 语法。

扫描全部/部分分库分表

在指定分库分表上执行,显式指定物理表名:SELECT/*+TDDL:scan('t1',real_table=("t1_00","t1_01"))*/COUNT(1)FROM t1 执行后会下发SQL语句到所有分库的 t1_00``t1_01 分表上,合并结果集后返回。在指定分库分表上执行,显式指定物理表名,...

普通表转换为分区表

ALTER TABLE t1 partition BY LIST(a)(PARTITION p0 VALUES IN(1,2,3,4,5),PARTITION p1 VALUES IN(6,7,8,9,10),PARTITION pd DEFAULT PARTITIONS 9);将表 t1 转换为HASH分区表。ALTER TABLE t1 partition BY HASH(a)PARTITIONS 12;将表 t1...

JOIN实现类型

SELECT t1.id,t2.id FROM tj_shop AS t1 JOIN tj_item AS t2 ON t1.id>t2.id 说明 数据会膨胀,性能比较差 说明 链接的表类型为KV/KKV/Summary时,该表的查询条件中必须包含PK等值条件,参考 KV、KKV查询 的使用限制。Hash Join:用于包含...

01新建MaxCompute公共节点

career_mc,t1.hyzk,case t1.hyzk when '0' then '01' when '1' then '02' end as c_hyzk_dm,case t1.hyzk when '0' then '已婚' when '1' then '未婚' end as c_hyzk_mc,t1.gz,t1.decdbyjyje,t1.decdbyjybs,t1.zjzdjyrq,t1.jtnsr,t1.dqckcy...

JOIN操作类型

SELECT t1.id,t2.id FROM tj_shop AS t1 LEFT JOIN tj_item AS t2 ON t1.id=t2.id 说明 如果右表值不唯一,建议不要连续使用过多 left join,以免在JOIN过程中产生数据膨胀 Inner Join:内连接。关键字 inner 可以省略。返回满足ON条件的行...

优化聚合与排序

explain select count(*)from t1 join t2 on t1.id=t2.id group by t1.name,t2.name order by t1.name,t2.name;Project(count(*)="count(*)")MemSort(sort="name ASC,name0 ASC")HashAgg(group="name,name0",count(*)="COUNT()")BKAJoin...

生成列

在psql上执行 \d t1 命令查看表结构,返回如下信息:Table"public.t1"Column|Type|Collation|Nullable|Default-+-+-+-+-stuid|integer|chinese|smallint|math|smallint|sum_score|smallint|generated always as(chinese+math)stored ...

DELETE

DELETE t1,t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.name LIMIT 10001;DELETE FROM t1,t2 USING t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.name LIMIT 10001;说明 t1、t2和t3的拆分...

JOIN操作类型

SELECT t1.id,t2.id FROM tj_shop AS t1 LEFT JOIN tj_item AS t2 ON t1.id=t2.id 说明 如果右表值不唯一,建议不要连续使用过多 left join,以免在JOIN过程中产生数据膨胀 Inner Join:内连接。关键字 inner 可以省略。返回满足ON条件的行...

PyODPS的列运算

cut` FROM DQC_0221_dev.`tmp_pyodps_d9e5d64e_1f21_4ffb_993f_70d3f36b6553` t1 sepallength_cut 0 4-5 1 4-5 2 4-5 3 4-5 4 None Sql compiled:CREATE TABLE tmp_pyodps_080a677e_904b_4edc_a961_160f8c664d7f LIFECYCLE 1 AS SELECT ...

检查SQL语句中的表是否已创建列索引

执行结果如下:+-+-+-+|TABLE_SCHEMA|TABLE_NAME|COLUMN_NAME|+-+-+-+|test|t1|a|test|t1|b|test|t2|a|+-+-+-+3 rows in set(0.01 sec)SQL语句中使用了 t1.a、t1.b 以及 t2.a 三列,且这三列没有被列索引覆盖。因此,调用该存储过程时,...

跨库查询

当需要查询分散在不同数据库中的数据时,您...a|b|c-+-+-2|12|t1 3|13|t1 4|14|t1 7|17|t1 8|18|t1 1|11|t1 5|15|t1 6|16|t1 9|19|t1 10|20|t1(10 rows)相关文档 AnalyticDB PostgreSQL版 还提供了跨实例查询功能,详情请参见 跨实例查询。

使用INSERT ON CONFLICT覆盖写入数据

t1中的非主键列进行了更新,返回示例如下:a|b|c|d-+-+-+-0|2|2|2(1 row)除了上述两种情况,覆盖写入功能支持更多使用场景,场景如下:主键冲突的情况下,在部分列中覆盖写入数据(适用于基于冲突数据覆盖部分列的场景):例如主键冲突后...

Hash Join的并行加速

workers:4)(cost=10.82 rows=4)->Parallel inner hash join(t2.c2=t1.c1)(cost=0.57 rows=1)->Parallel table scan on t2,with parallel partitions:1(cost=0.03 rows=1)->Parallel hash->Parallel table scan on t1,with parallel ...

获取创建列存索引的DDL语句

执行结果如下:mysql>call dbms_imci.columnar_advise_by_columns('select count(t1.a)from t1 inner join t2 on t1.a=t2.a group by t1.b');DDL_STATEMENT|+-+|ALTER TABLE test.t1 MODIFY COLUMN a int(11)DEFAULT NULL COMMENT '...

UNION、INTERSECT和EXCEPT

例如,以下查询中,首先计算 T1 和 T2 的 UNION,然后对 UNION 结果执行 EXCEPT 操作。select*from t1 union select*from t2 except select*from t3 order by c1;在同一查询中,组合使用集合运算符时,INTERSECT 运算符优先于 UNION 和 ...

条件下推(WHERE条件下推派生表)

条件下推变换后结果为:SELECT*FROM t1,(SELECT x FROM t2 WHERE x>6 GROUP BY x)d_tab WHERE t1.a=d_tab.x AND t1.a>6;示例2:SELECT f1 FROM(SELECT(SELECT f1 FROM t1 LIMIT 1)AS f1 FROM t1 UNION SELECT f2 FROM t2)dt WHERE f1=1;...

增量查询

在具体的查询示例中,例如,begin是t1-1,end是t1,只需读取t1时间段对应的DeltaFile:d1进行输出;如果end是t2,会读取两个DeltaFiles:d1和d2;如果begin是t1,end是t2-1,即查询的时间范围为(t1,t2),这个时间段是没有任何增量数据插入...

UNION、INTERSECT和EXCEPT

例如,在以下查询中,首先计算T1和T2的UNION,然后对UNION结果执行EXCEPT操作:select*from t1 union select*from t2 except select*from t3 order by c1;在同一个查询中使用运算符组合时,INTERSECT运算符优先于UNION和EXCEPT运算符。例如...

同构数据源访问

a|b|c-+-+-2|12|t1 3|13|t1 4|14|t1 7|17|t1 8|18|t1 1|11|t1 5|15|t1 6|16|t1 9|19|t1 10|20|t1(10 rows)相关文档 您也可以通过greenplum_fdw和gp_parallel_retrieve_cursor插件实现跨实例查询,详情请参见 跨实例查询。

查询改写与下推

EXPLAIN select t2.id from t2 join t1 on t2.id=t1.id join l2 on t1.id=l2.id;返回执行计划信息如下:Project(id="id")HashJoin(condition="id=id AND id=id0",type="inner")Gather(concurrent=true)LogicalView(tables="t2_[0-3],l2_[0-...

查询改写与下推

explain select t2.id from t2 join t1 on t2.id=t1.id join l2 on t1.id=l2.id;Project(id="id")HashJoin(condition="id=id AND id=id0",type="inner")Gather(concurrent=true)LogicalView(tables="t2_[0-3],l2_[0-3]",shardCount=4,sql=...

创建安全联合分析任务

mpcsql_out PARTITION(job_name='groupby_oneside_distinct_twoside_test')SELECT t1.education_num as col1_int,COUNT(t1.workclass)as col2_string,COUNT(DISTINCT(t2.sex))as col3_string FROM alice.host_train_adult_100 t1 JOIN bob....

子查询

示例如下:SELECT*FROM tb1 WHERE row(id,name)=(select id,name from tb2)不支持在UPDATE SET子句中使用子查询,示例如下:UPDATE t1 SET c1=(SELECT c2 FROM t2 WHERE t1.c1=t2.c1)LIMIT 10 注意事项 PolarDB-X 中部分子查询仅能以APPLY...

CTE(2.0版)

WITH子句同样适用于多子查询:WITH t1 AS(SELECT a,MAX(b)AS b FROM x GROUP BY a),t2 AS(SELECT a,AVG(d)AS d FROM y GROUP BY a)SELECT t1.*,t2.*FROM t1 JOIN t2 ON t1.a=t2.a;WITH子句中定义的关系可以互相连接:WITH x AS(SELECT a ...

子查询

示例如下:select*from tb1 where row(id,name)=(select id,name from tb2)不支持在UPDATE SET子句中使用子查询,示例如下:UPDATE t1 SET c1=(SELECT c2 FROM t2 WHERE t1.c1=t2.c1)LIMIT 10 注意事项 PolarDB-X 1.0 中部分子查询仅能以...
共有200条 < 1 2 3 4 ... 200 >
跳转至: GO
产品推荐
云服务器 安全管家服务 安全中心
这些文档可能帮助您
轻量应用服务器 云虚拟主机 云服务器 ECS DataV数据可视化 弹性公网IP 短信服务
新人特惠 爆款特惠 最新活动 免费试用