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);
相关推荐
java1234_小锋11 分钟前
Redis的热Key问题如何解决?
数据库·redis·缓存
wang60212521815 分钟前
FastAPI框架为什么在启动时建表
数据库
男孩李16 分钟前
linux下如何执行postgres数据库的sql文件
数据库·sql·postgresql
zwjapple21 分钟前
MySQL SQL 面试核心考点与注意事项总结
数据库·sql·mysql
乐韵天城21 分钟前
SpringBoot中如何手动开启数据库事务
数据库·spring boot
05大叔27 分钟前
Spring Day02
数据库·sql·spring
默默前行的虫虫33 分钟前
nicegui中多次调用数据库操作总结
数据库·python
鸽鸽程序猿39 分钟前
【Redis】事务
数据库·redis·缓存
Knight_AL1 小时前
MySQL 分区表应用案例:优化数据管理与性能
数据库·mysql
老华带你飞2 小时前
考试管理系统|基于java+ vue考试管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端