首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >大数据ClickHouse进阶(十五):ClickHouse的LIMIT BY和 LIMIT子句

大数据ClickHouse进阶(十五):ClickHouse的LIMIT BY和 LIMIT子句

原创
作者头像
Lansonli
发布2022-10-15 00:57:58
发布2022-10-15 00:57:58
2.4K0
举报
文章被收录于专栏:Lansonli技术博客Lansonli技术博客

​ClickHouse的LIMIT BY和 LIMIT子句

一、LIMIT BY子句

LIMIT BY 子句运行在Order by 之后和LIMIT 之前,能够按照指定分组,最多返回前n行数据,如果数据总行少于n行,则按实际数量返回,常用于TOPN的查询场景,功能类似Hive中的开窗函数。

LIMIT BY 的常规语法如下:

代码语言:javascript
复制
LIMIT n BY express

n指的是获取几条数据;express通常是一到多个字段,即按照express分组获取每个分组的前n条数据。

用法示例如下:

代码语言:javascript
复制
#目前有表mt_tbl2,数据如下:
node1 :) select * from mt_tbl2;

代码语言:javascript
复制
#查询表mt_tbl2中每个省份对应的totalcount top2最大值
node1 :) select province,totalcount from mt_tbl2 order by totalcount desc limit 2 by province;

除了常规语法外,LIMIT BY 也支持跳过offset偏移量获取数据,具体语法如下:

代码语言:javascript
复制
#按照express分组,获取跳过y行后的top n行数据。
LIMIT n offset y BY express
#简化为
LIMIT y,n BY express

举例:获取表mt_tbl2中每个省份第二、第三大销售额

代码语言:javascript
复制
node1 :) select province,totalcount from mt_tbl2 order by totalcount desc limit 2 offset 1 by province;

二、LIMIT 子句

LIMIT 子句用于返回指定的前n行数据,常用于分页场景,它的三种语法形式如下:

代码语言:javascript
复制
#返回前n行数据
LIMIT n
#指定从第m行开始返回前n行数据
LIMIT n OFFSET m
#指定从第m行开始返回前n行数据简化写法
LIMIT m,n


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ​ClickHouse的LIMIT BY和 LIMIT子句
    • 一、LIMIT BY子句
    • 二、LIMIT 子句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档