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);
相关推荐
Code季风15 分钟前
GORM 一对多关联(Has Many)详解:从基础概念到实战应用
数据库·go·orm
IT果果日记38 分钟前
Apache Doris毫秒级分布式数据库引擎
大数据·数据库·后端
时序数据说41 分钟前
时序数据库的功能与应用价值
大数据·数据库·物联网·时序数据库
知之为知41 分钟前
时序数据库-涛思数据库
数据库·时序数据库·涛思数据
曼波の小曲2 小时前
运维学习Day20——MariaDB数据库管理
运维·数据库·学习
wl85112 小时前
SAP HCM 标准表视图创建(汇率数据)
数据库
荔枝吻2 小时前
【保姆级喂饭教程】python基于mysql-connector-python的数据库操作通用封装类(连接池版)
数据库·python·mysql
小李同学_LHY4 小时前
Redis一站式指南二:主从模式高效解决分布式系统“单点问题”
java·数据库·redis·缓存
JAVA学习通4 小时前
【redis初阶】------List 列表类型
数据库·redis·缓存
程序员JerrySUN9 小时前
基于 RAUC 的 Jetson OTA 升级全攻略
java·数据库·redis