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);
相关推荐
J.P.August2 分钟前
Oracle RAC 环境下数据文件误建在本地目录的处理过程
数据库·oracle
对酒当歌丶人生几何7 分钟前
Mybatis控制台打印SQL执行信息(执行方法、执行SQL、执行时间)
java·数据库·sql·mybatis
LightOfNight1 小时前
Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)
服务器·数据库·redis·分布式·后端·缓存·中间件
代码中の快捷键1 小时前
MySQL数据库存储引擎的数据结构
数据结构·数据库·mysql
Adolf_19931 小时前
Django 路由层
数据库
好记忆不如烂笔头abc1 小时前
logminer挖掘日志归档查找问题
数据库·sql·mysql
Yz98769 小时前
Hive的基础函数-日期函数
大数据·数据仓库·hive·hadoop·sql·数据库架构·big data
java_heartLake9 小时前
PostgreSQL数据库参数调优实践
数据库·postgresql·调优
xnuscd11 小时前
Milvus概念
数据库·学习·mysql
代码欢乐豆11 小时前
软件工程第13章小测
服务器·前端·数据库·软件工程