clickhouse 百分位数
时间: 2023-09-30 13:13:03 浏览: 33
ClickHouse 中计算百分位数可以使用 quantile 函数。该函数需要两个参数:第一个参数是要计算的百分位数,第二个参数是要计算百分位数的字段。
以下是计算某个表中某个字段的第 90 个百分位数的示例查询:
```
SELECT quantile(0.9)(field_name) FROM table_name
```
注意:quantile 函数的参数是一个小数,表示要计算的百分位数,范围从 0 到 1,例如 0.5 表示计算中位数。
相关问题
clickhouse 百分位数与percentile_disc相同的
在ClickHouse中,百分位数函数和percentile_disc函数是相同的。它们都是用于计算在一组数据中某个百分比处的特定值。例如,如果要计算一组数据中的第90个百分位数,可以使用以下语法:
SELECT percentile_disc(0.9) WITHIN GROUP (ORDER BY data) FROM my_table;
这将返回数据中排名第90%的值。与此相同的查询语句可以使用百分位数函数来实现:
SELECT quantile(0.9)(data) FROM my_table;
这也将返回数据中排名第90%的值。因此,在ClickHouse中,百分位数函数和percentile_disc函数是相同的。
postgresql 百分位数
在 PostgreSQL 中,你可以使用 PERCENTILE_CONT 或 PERCENTILE_DISC 函数来计算百分位数。
例如,要计算一个表中某一列的第50个百分位数,可以使用以下语句:
```
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY column_name) FROM table_name;
```
这将返回该列的中位数。你也可以将第一个参数设置为其他值,以计算不同的百分位数。
PERCENTILE_CONT 函数会使用连续内插法来计算百分位数,而 PERCENTILE_DISC 函数会使用离散内插法。它们的主要区别是当要计算的百分位数在数据集中不存在时的处理方式。PERCENTILE_CONT 函数会对不存在的值进行内插计算,而 PERCENTILE_DISC 函数则会返回最接近的离散值。
例如,以下语句将使用 PERCENTILE_CONT 函数计算某一列的第90个百分位数:
```
SELECT PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY column_name) FROM table_name;
```
如果该列中不存在第90个百分位数,则 PERCENTILE_CONT 函数将计算出一个近似值。如果你希望使用 PERCENTILE_DISC 函数来计算百分位数,只需将函数名从 PERCENTILE_CONT 改为 PERCENTILE_DISC 即可。