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实践的主要内容,如果未能解决你的问题,请参考以下文章