|NO.Z.00044|——————————|BigDataEnd|——|Hadoop&OLAP_ClickHouse.V16|——|ClickHouse.v16|ClickHouse语法|Distingct|Limit子句|

一、DISTINCT子句
### --- Distingt子句

~~~     如果 SELECT DISTINCT 被声明,则查询结果中只保留唯一行。 
~~~     因此,在结果中所有完全匹配的行集合中,只有一行被保留。
~~~     # 空处理
~~~     DISTINCT 适用于 NULL 就好像 NULL 是一个特定的值,并且 NULL==NULL. 换句话说,
~~~DISTINCT 结果,不同的组合 NULL 仅发生一次。 
~~~     它不同于 NULL 在大多数其他情况中的处理方式。

~~~     # 替代办法
~~~     通过应用可以获得相同的结果 GROUP BY 在同一组值指定为 SELECT 子句,
~~~     并且不使用任何聚合函数。 但与GROUP BY 有几个不同的地方:
~~~     DISTINCT 可以与 GROUP BY 一起使用.
~~~ORDER BY 被省略并且 LIMIT 被定义时,在读取所需数量的不同行后立即停止运行。
~~~     数据块在处理时输出,而无需等待整个查询完成运行。
~~~     # 限制
~~~     DISTINCT 不支持当 SELECT 包含有数组的列。

~~~     # 例子
~~~     ClickHouse支持使用 DISTINCT ORDER BY 在一个查询中的不同的列。 
~~~     DISTINCT 子句在 ORDER BY 子句前被执行。
### --- 示例表:

┌─a─┬─b─┐
│ 21 │
│ 12 │
│ 33 │
│ 24 │
└───┴───┘
~~~     # 当执行 SELECT DISTINCT a FROM t1 ORDER BY b ASC 来查询数据,我们得到以下结果:

┌─a─┐
│ 2 │
│ 1 │
│ 3 │
└───┘
~~~     # 如果我们改变排序方向 SELECT DISTINCT a FROM t1 ORDER BY b DESC,我们得到以下结果:
~~~2, 4 排序前被切割。
~~~     在编程查询时考虑这种实现特性。

┌─a─┐
│ 3 │
│ 1 │
│ 2 │
└───┘
二、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, you will get in result first n or n,
~~~     m rows and all rows with same ORDER BY fields values equal 
~~~     to row at position n for LIMIT n and m for LIMIT n,m.
~~~     此修饰符可以与: ORDER BYWITH FILL modifier 组合使用.
### --- 例如以下查询:

hadoop01 :) SELECT * FROM (
            SELECT number%50 AS n FROM numbers(100)
            ) ORDER BY n LIMIT 0,5;
~~~输出参数
┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
└───┘
~~~     # 单子执行了 WITH TIES 修饰符后
~~~     cause row number 6 have same value “2for field n as row number 5

hadoop01 :) SELECT * FROM (
            SELECT number%50 AS n FROM numbers(100)
            ) ORDER BY n LIMIT 0,5 WITH TIES;
~~~输出参数
┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘

 
 
 
 
 
 
 
 
 

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  阅读(17)  评论(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

导航

统计

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