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 子句来指定全局排序。