大数据ClickHouse进阶(十四):ClickHouse的HAVING和ORDER BY子句

2022-10-15 00:55:40 浏览数 (1)

ClickHouse的HAVING和ORDER BY子句

一、HAVING子句

ClickHouse也支持Having子句,需要与group by 同时出现,不能单独使用,它能够在聚合计算之后实现二次过滤数据。操作如下:

代码语言:javascript复制
node1 :) select province,city,item,sum(totalcount) as total from mt_tbl2 group by province,city,item having total >1000;
┌─province─┬─city─┬─item─────┬─total─┐
│ 上海     │ 嘉定 │ 华为手机 │  1400 │
└──────────┴──────┴──────────┴───────┘

二、ORDER BY 子句

Order by 子句通过声明排序键来指定查询数据返回时的顺序。在MergeTree表引擎中也有Order by 参数用于指定排序键。在MergeTree表引擎中指定order by 后,数据在各个分区内按照其定义的规则排序,这是一种分区内的局部排序,如果在查询时数据跨越了多个分区,则他们返回的顺序是无法预知的,每一次查询返回的顺序都有可能不同。这种情况下,如果希望数据总是能够按照期望的顺序返回,就需要借助Order by 子句来指定全局排序。

0 人点赞