前言
hive执行limit语句报错,分页失败
1. 支持limit m-1, n语法的hive版本
SELECT * FROM 表名 LIMIT n; //检索前 n 个记录行
SELECT * FROM 表名 LIMIT m-1, n; //检索 m行 到 m+n行
如:
2. 不支持limit m-1, n语法,使用row_number()函数
2.1 row_number()的使用
(1)按照deptno分组,不排序
select *, row_number()over(partition by deptno) from emp;
(2)按照empno进行排序,不分组,排序列命名rownum
select * ,row_number() over (order by empno) as rownum from emp;
(3)按照empno排序,同时根据deptno进行分组
select * ,row_number() over (partition by deptno order by empno) as rownum from emp;
2.2 分页
从原表中查询第6到第10行数据
select * from (select * ,row_number() over () as rownum from emp) t where t.rownum between 6 and 10;
注:文章来源:https://www.toymoban.com/news/detail-404759.html
row_number最好写一个临时表
,不然每次都排序很耗性能文章来源地址https://www.toymoban.com/news/detail-404759.html
到了这里,关于hive limit分页查询、row_number()分页查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!