LIMIT BY子句
ClickHouse支持以下语法变体:
LIMIT [offset_value, ]n BY expressions
LIMIT n OFFSET offset_value BY expressions
在查询处理过程中,ClickHouse会选择按排序键排序的数据。 排序键使用以下命令显式设置 ORDER BY 子句或隐式作为表引擎的属性。 然后ClickHouse应用 LIMIT n BY expressions
并返回第一 n
每个不同组合的行 expressions
. 如果 OFFSET
被指定,则对于每个数据块属于一个不同的组合 ,ClickHouse跳过 offset_value
从块开始的行数,并返回最大值 n
行的结果。 如果 offset_value
如果数据块中的行数大于数据块中的行数,ClickHouse将从该块返回零行。
LIMIT BY
是不相关的 . 它们都可以在同一个查询中使用。
样例表:
SELECT * FROM limit_by ORDER BY id, val LIMIT 2 BY id
该 SELECT * FROM limit_by ORDER BY id, val LIMIT 2 OFFSET 1 BY id
查询返回相同的结果。
以下查询返回每个引用的前5个引用 domain, device_type
最多可与100行配对 (LIMIT n BY + LIMIT
).
domainWithoutWWW(URL) AS domain,
domainWithoutWWW(REFERRER_URL) AS referrer,
device_type,
FROM hits
GROUP BY domain, referrer, device_type
ORDER BY cnt DESC
LIMIT 5 BY domain, device_type