ClickHouse数据仓库使用之limit实践

Posted 肖永威

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClickHouse数据仓库使用之limit实践相关的知识,希望对你有一定的参考价值。

基本语法

LIMIT

LIMIT m 允许选择结果中起始的 m 行。

LIMIT n, m 允许选择个 m 从跳过第一个结果后的行 n 行。 与 LIMIT m OFFSET n 语法是等效的。

n 和 m 必须是非负整数。

如果没有 ORDER BY子句显式排序结果,结果的行选择可能是任意的和非确定性的。

LIMIT … WITH TIES 修饰符

如果为 LIMIT n[,m] 设置了 WITH TIES ,并且声明了 ORDER BY expr_list, 除了得到无修饰符的结果(正常情况下的 limit n, 前n行数据), 还会返回与第n行具有相同排序字段的行(即如果第n+1行的字段与第n行 拥有相同的排序字段,同样返回该结果.

此修饰符可以与: ORDER BY … WITH FILL modifier组合使用.

例如以下查询:

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5

返回

实践案例

例如下面的语句,从指定位置第20行(不含),取连续10行数据,到30行。

select carduser_id from 
(select distinct carduser_id as carduser_id from card_tbl_trade_m_orc)
order by carduser_id 
limit 20,10

等同于如下语句:

select carduser_id from 
(select distinct carduser_id as carduser_id from card_tbl_trade_m_orc)
order by carduser_id 
limit 10 offset 20

在这里插入图片描述

注意坑
在使用limit字句时有一点需要注意,如果数据跨越多个分区,在没有使用order by指定全局顺序的情况下,每次limit查询所返回的数据有可能不同。如果对数据的返回顺序敏感,则应搭配order by一同使用。
在这里插入图片描述

参考:
https://clickhouse.tech/docs/zh/sql-reference/statements/select/limit/

以上是关于ClickHouse数据仓库使用之limit实践的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库系列 之Clickhouse中的更新和删除操作

数据仓库系列 之Clickhouse中的更新和删除操作

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

极客星球|Clickhouse在数据智能公司的应用与实践

极客星球|Clickhouse在数据智能公司的应用与实践

华为云原生之数据仓库服务GaussDB(DWS)的深度使用与应用实践