Clickhouse 我可以在quantilesExact中使用0和1值吗
从Clickhouse 我可以在quantilesExact中使用0和1值吗,clickhouse,Clickhouse,从分位数函数: 建议使用[0.01,0.99]范围内的级别值。不要使用等于0或1的级别值–在这些情况下使用最小值和最大值函数 这是否也适用于quantileExact和quantileExact函数 在我的实验中,我发现quantileExact(0)=min和quantileExact(1)=max,但不能确定。事实证明,对quantileExact和quantileExact函数使用0和1值是安全的。该建议不是关于精度,而是关于分位数的复杂性*。 quantileExact比max-min重
分位数
函数:
建议使用[0.01,0.99]范围内的级别值。不要使用等于0或1的级别值–在这些情况下使用最小值和最大值函数
这是否也适用于quantileExact
和quantileExact
函数
在我的实验中,我发现
quantileExact(0)=min
和quantileExact(1)=max
,但不能确定。事实证明,对quantileExact
和quantileExact
函数使用0和1值是安全的。该建议不是关于精度,而是关于分位数的复杂性*。
quantileExact比max-min重得多。
查看时间差,即使在小数据集上,最小/最大速度也要快8倍
create table Speed Engine=MergeTree order by X
as select number X from numbers(1000000000);
SELECT min(X), max(X) FROM Speed;
┌─min(X)─┬────max(X)─┐
│ 0 │ 999999999 │
└────────┴───────────┘
1 rows in set. Elapsed: 1.040 sec. Processed 1.00 billion rows, 8.00 GB (961.32 million rows/s., 7.69 GB/s.)
SELECT quantileExact(0)(X), quantileExact(1)(X) FROM Speed;
┌─quantileExact(0)(X)─┬─quantileExact(1)(X)─┐
│ 0 │ 999999999 │
└─────────────────────┴─────────────────────┘
1 rows in set. Elapsed: 8.561 sec. Processed 1.00 billion rows, 8.00 GB (116.80 million rows/s., 934.43 MB/s.)
它主要适用于quantileExact和quantileExact。quantileExact(0)始终===min(),quantileExact(1)=max可能在某些情况下quantileExact会更快,例如,您需要许多quantileExact(0、.10、.20、.30、.40…1)