PERCENTILE_DISC
时间: 2023-11-01 22:09:06 浏览: 88
PERCENTILE_DISC是一种SQL聚合函数,用于在一个分组中查找指定百分位数的值。它的语法为:PERCENTILE_DISC (percentage) WITHIN GROUP (ORDER BY expression)。其中percentage是要查找的百分位数,expression是要排序的列。该函数会按照expression列的值对数据进行排序,并返回在指定百分位数下的第一个值。如果有多个值与该百分位数相等,则返回第一个值。
引用中的示例代码中,PERCENTILE_DISC(0.6) WITHIN GROUP (ORDER BY SUM(amount) DESC) AS percentile_disc表示在按照amount列的值对数据进行降序排序后,查找60%分位数的值,并将其命名为percentile_disc。
引用中提到了PERCENTILE-DISC函数与CUME-DIST函数相反,它会在每个分组中检查累积分布的数值,直到找到大于或等于指定百分位数的值。这两个函数可以一起使用来计算分组中的百分位数。
相关问题
PERCENTILE_disc,PERCENTILE_count 区别
`PERCENTILE_DISC`和`PERCENTILE_CONT`是Oracle中两个用于计算百分位数的函数,它们的主要区别在于它们如何处理输入数据中不存在的百分位数。
- `PERCENTILE_DISC`函数:用于计算离散型百分位数。它将结果集中的值按照指定的百分位数分成两部分,然后返回包含第一个部分的最大值的值。例如,如果指定的百分位数为50%,则`PERCENTILE_DISC`函数返回的是包含前50%最大值的值,而不是这些值的平均值。如果指定的百分位数在输入数据中不存在,则函数返回最接近该值的存在的值。
- `PERCENTILE_CONT`函数:用于计算连续型百分位数。它将结果集中的值按照指定的百分位数进行排序,并返回相应的值。例如,如果指定的百分位数为50%,则`PERCENTILE_CONT`函数返回的是包含前50%最大值的平均值。如果指定的百分位数在输入数据中不存在,则函数会计算并返回该值的线性插值。
`PERCENTILE_COUNT`函数是另一个与百分位数相关的函数,它用于计算给定列中的值的数量。它将输入值按照指定的百分位数分成两部分,并返回包含前一个部分的值的数量。例如,如果指定的百分位数为50%,则`PERCENTILE_COUNT`函数返回包含前50%最大值的数量。
总的来说,`PERCENTILE_DISC`和`PERCENTILE_CONT`是用于计算离散型和连续型百分位数的函数,而`PERCENTILE_COUNT`是用于计算给定列中值的数量的函数。
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函数是相同的。
阅读全文