天天看點

大資料ClickHouse進階(十五):ClickHouse的LIMIT BY和 LIMIT子句

大資料ClickHouse進階(十五):ClickHouse的LIMIT BY和 LIMIT子句

文章目錄

​​ClickHouse的LIMIT BY和 LIMIT子句​​

​​一、LIMIT BY子句​​

​​二、LIMIT 子句​​

ClickHouse的LIMIT BY和 LIMIT子句

一、LIMIT BY子句

LIMIT BY 子句運作在Order by 之後和LIMIT 之前,能夠按照指定分組,最多傳回前n行資料,如果資料總行少于n行,則按實際數量傳回,常用于TOPN的查詢場景,功能類似Hive中的開窗函數。

LIMIT BY 的正常文法如下:

LIMIT n BY express      

n指的是擷取幾條資料;express通常是一到多個字段,即按照express分組擷取每個分組的前n條資料。

用法示例如下:

#目前有表mt_tbl2,資料如下:
node1 :) select * from mt_tbl2;      
大資料ClickHouse進階(十五):ClickHouse的LIMIT BY和 LIMIT子句
#查詢表mt_tbl2中每個省份對應的totalcount top2最大值
node1 :) select province,totalcount from mt_tbl2 order by totalcount desc limit 2 by province;      
大資料ClickHouse進階(十五):ClickHouse的LIMIT BY和 LIMIT子句

除了正常文法外,LIMIT BY 也支援跳過offset偏移量擷取資料,具體文法如下:

#按照express分組,擷取跳過y行後的top n行資料。
LIMIT n offset y BY express
#簡化為
LIMIT y,n BY express      

舉例:擷取表mt_tbl2中每個省份第二、第三大銷售額

node1 :) select province,totalcount from mt_tbl2 order by totalcount desc limit 2 offset 1 by province;      

二、LIMIT 子句

#傳回前n行資料
LIMIT n
#指定從第m行開始傳回前n行資料
LIMIT n OFFSET m
#指定從第m行開始傳回前n行資料簡化寫法
LIMIT m,n      
  • 📢歡迎點贊 👍 收藏 ⭐留言 📝 如有錯誤敬請指正!
  • 📢本文由 Lansonli 原創,
  • 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨

繼續閱讀