获取项目所属的百分位数 SQL
Getting the percentile the item belongs to in SQL
我正在尝试整理一些简单的统计数据,但坚持根据作者的总分计算作者所属的百分位数:
select
[by] author,
count(*) count,
sum(score) sum_score,
quantiles(sum(score), 101) percentile_sum_score,
from
[bigquery-public-data:hacker_news.stories]
group by
author
此代码 returns 每个作者的 sum(score)
在 percentile_sum_score
列(定义为 quantiles(sum(score), 101)
)。但不是作者相对于其他作者所处的百分位数。
这发生在 BigQuery, and some conventional functions are not available (docs)。
有没有办法获得正确的统计数据?
您可能正在寻找 PERCENT_RANK() 函数
以下是您的示例的可能用途
SELECT
author,
[count],
sum_score,
PERCENT_RANK() OVER(ORDER BY sum_score DESC) percentile_sum_score,
FROM (
SELECT
[by] author,
COUNT(1) [count],
SUM(score) sum_score,
FROM [bigquery-public-data:hacker_news.stories]
GROUP BY author
)
我正在尝试整理一些简单的统计数据,但坚持根据作者的总分计算作者所属的百分位数:
select
[by] author,
count(*) count,
sum(score) sum_score,
quantiles(sum(score), 101) percentile_sum_score,
from
[bigquery-public-data:hacker_news.stories]
group by
author
此代码 returns 每个作者的 sum(score)
在 percentile_sum_score
列(定义为 quantiles(sum(score), 101)
)。但不是作者相对于其他作者所处的百分位数。
这发生在 BigQuery, and some conventional functions are not available (docs)。
有没有办法获得正确的统计数据?
您可能正在寻找 PERCENT_RANK() 函数
以下是您的示例的可能用途
SELECT
author,
[count],
sum_score,
PERCENT_RANK() OVER(ORDER BY sum_score DESC) percentile_sum_score,
FROM (
SELECT
[by] author,
COUNT(1) [count],
SUM(score) sum_score,
FROM [bigquery-public-data:hacker_news.stories]
GROUP BY author
)