SQL之LIMIT子句踩坑记录

部分场景下,我们可能希望从一个大表 unparsed 中抽取前100行并对这些行应用UDF,一种容易想到的SQL语句如下:

sql 复制代码
@pyspark
insert into table parsed
select url, parse_func(content) as parsed_content from unparsed
limit 100;

但这个语句实际上会对 unparsed 中的所有行先应用UDF然后再抽取前100行,不符合我们的期望,为此可以作出如下修改

sql 复制代码
@pyspark
insert into table parsed
select url, parse_func(content) as parsed_content
from (
    select url, content from unparsed
    limit 100
);

注意,以下这种语句是无效的,速度并不会有任何改变:

sql 复制代码
@pyspark
insert into table parsed
(select url, parse_func(content) as parsed_content from unparsed limit 100);
相关推荐
一条懒鱼66616 分钟前
Redis Sentinel哨兵集群
数据库·redis·sentinel
Yeats_Liao29 分钟前
Go Web 编程快速入门 10 - 数据库集成与ORM:连接池、查询优化与事务管理
前端·数据库·后端·golang
金仓拾光集1 小时前
金仓数据库替代MongoDB实战:政务电子证照系统的国产化转型之路
数据库·mongodb·政务·数据库平替用金仓·金仓数据库
BullSmall1 小时前
一键部署MySQL
数据库·mysql
Zhu_S W2 小时前
Redis跳表:高效有序数据结构的深度剖析
数据结构·数据库·redis
جيون داد ناالام ميづ2 小时前
Spring AOP核心原理分析
java·数据库·spring
无敌最俊朗@3 小时前
SQLite 核心知识点讲解
jvm·数据库·oracle
小宋10213 小时前
Neo4j-图数据库入门图文保姆攻略
数据库·neo4j
lang201509283 小时前
Spring数据库连接控制全解析
java·数据库·spring
十八岁讨厌编程3 小时前
【后端SQL训练营】高频 SQL 50 题(基础版·上篇)
数据库·sql