长话短说,我将一些数据分组到不同的数据段中,并注意到在一列中使用 NTILE(10) OVER(ORDER BY column_name DESC) .此列中大约50%的值为0,这意味着前5个十分位数的值都相同。你觉得 NTILE() 你能处理这样的案子吗?我天真地假设它按值排序,然后将它分成10个偶数块,这意味着它或多或少随机地将0分配到一个十分位,但我还没有找到解释这种特殊情况的文档。额外的问题——如果值为 NULL 而不是 0 ?
NTILE(10) OVER(ORDER BY column_name DESC)
NTILE()
NULL
0
os8fio9y1#
NTILE() 定义为使瓷砖尺寸尽可能相等。大小可以相差一行,但不能超过一行。结果,具有相同 order by 钥匙可以在不同的瓷砖中。本文档试图对此进行描述:将每个窗口分区的行划分为n个bucket,范围从1到最多n。bucket值最多相差1。第二句话就是桶的大小最多相差1。
order by
1条答案
按热度按时间os8fio9y1#
NTILE()
定义为使瓷砖尺寸尽可能相等。大小可以相差一行,但不能超过一行。结果,具有相同
order by
钥匙可以在不同的瓷砖中。本文档试图对此进行描述:
将每个窗口分区的行划分为n个bucket,范围从1到最多n。bucket值最多相差1。
第二句话就是桶的大小最多相差1。