|NO.Z.00042|——————————|BigDataEnd|——|Hadoop&OLAP_ClickHouse.V14|——|ClickHouse.v14|ClickHouse语法|LimitBy|Having子句|

一、LIMIT BY子句
### --- LimitBy

~~~     与查询 LIMIT n BY expressions 子句选择第一个 n 每个不同值的行 expressions. 
~~~     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 被指定,则对于每个数据块属于一个不同的组合 expressions,
~~~     ClickHouse跳过 offset_value 从块开始的行数,并返回最大值 n 行的结果。 
~~~     如果 offset_value 如果数据块中的行数大于数据块中的行数,ClickHouse将从该块返回零行。
~~~     # 注
~~~     LIMIT BY 是不相关的 LIMIT. 它们都可以在同一个查询中使用。
二、示例
### --- 例样例表:

~~~     # 创建表
hadoop01 :) CREATE TABLE limit_by(id Int, val Int) ENGINE = Memory;
~~~     # 加载数据
hadoop01 :) INSERT INTO limit_by VALUES (1, 10), (1, 11), (1, 12), (2, 20), (2, 21);
~~~     # 查询数据

hadoop01 :) SELECT * FROM limit_by ORDER BY id, val LIMIT 2 BY id;

┌─id─┬─val─┐
│  110 │
│  111 │
│  220 │
│  221 │
└────┴─────┘
~~~     # 查询数据

hadoop01 :) SELECT * FROM limit_by ORDER BY id, val LIMIT 1, 2 BY id;

┌─id─┬─val─┐
│  111 │
│  112 │
│  221 │
└────┴─────┘
### --- 该 SELECT * FROM limit_by ORDER BY id, val LIMIT 2 OFFSET 1 BY id 查询返回相同的结果。
~~~     以下查询返回每个引用的前5个引用 domain, device_type 最多可与100行配对 (LIMIT n BY + LIMIT).

hadoop01 :) SELECT domainWithoutWWW(URL) AS domain,
            domainWithoutWWW(REFERRER_URL) AS referrer,
            device_type, count() cnt FROM hits
            GROUP BY domain, referrer, device_type
            ORDER BY cnt DESC LIMIT 5 BY domain, device_type
            LIMIT 100;
二、HAVING 子句
### --- Having子句

~~~     允许过滤由 GROUP BY 生成的聚合结果. 它类似于 WHERE~~~     但不同的是 WHERE 在聚合之前执行,而 HAVING 之后进行。
~~~     可以从 SELECT 生成的聚合结果中通过他们的别名来执行 HAVING 子句。 
~~~     或者 HAVING 子句可以筛选查询结果中未返回的其他聚合的结果。
~~~     # 限制
~~~     HAVING 如果不执行聚合则无法使用。 使用 WHERE 则相反。

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(32)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示