这是一个有效的 PERCENTILE_CONT SQL 查询吗?
Is this a valid PERCENTILE_CONT SQL query?
我正在尝试 运行 SQL 查询以在某个组内的 table 中找到第 50 个百分位数,但随后我也在同一字段上对结果进行分组.这是我的查询,例如 tpch 的国家 table:
SELECT
regionkey,
PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY regionkey)
FROM "tpch/nation"
GROUP BY regionkey
ORDER BY regionkey
这是一个有效的查询吗?我正在尝试通过 运行ning 各种不同的百分位数查询来对我的代码进行质量检查。 Postgres returns 上述查询的结果:
regionkey | percentile_cont
-------------+-----------------
0 | 0
1 | 1
2 | 2
3 | 3
4 | 4
(5 rows)
但我的问题是在现实世界中,有人会尝试 运行 此类查询吗?我是聚合函数的新手,特别是百分位数函数。
您可以使用 percentile_cont()
来获取某个订购值的百分比。例如,如果该地区有一个 population
列,那么您将计算人口中位数为:
SELECT regionkey,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY population)
FROM "tpch/nation"
GROUP BY regionkey
ORDER BY regionkey;
在 ORDER BY
中使用 regionkey
是没有意义的。在每一组中,regionkey
只有一个值。因此,PERCENTILE_CONT()
只能 return 该值。
但是,它对几乎任何其他列都非常有用。
我正在尝试 运行 SQL 查询以在某个组内的 table 中找到第 50 个百分位数,但随后我也在同一字段上对结果进行分组.这是我的查询,例如 tpch 的国家 table:
SELECT
regionkey,
PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY regionkey)
FROM "tpch/nation"
GROUP BY regionkey
ORDER BY regionkey
这是一个有效的查询吗?我正在尝试通过 运行ning 各种不同的百分位数查询来对我的代码进行质量检查。 Postgres returns 上述查询的结果:
regionkey | percentile_cont
-------------+-----------------
0 | 0
1 | 1
2 | 2
3 | 3
4 | 4
(5 rows)
但我的问题是在现实世界中,有人会尝试 运行 此类查询吗?我是聚合函数的新手,特别是百分位数函数。
您可以使用 percentile_cont()
来获取某个订购值的百分比。例如,如果该地区有一个 population
列,那么您将计算人口中位数为:
SELECT regionkey,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY population)
FROM "tpch/nation"
GROUP BY regionkey
ORDER BY regionkey;
在 ORDER BY
中使用 regionkey
是没有意义的。在每一组中,regionkey
只有一个值。因此,PERCENTILE_CONT()
只能 return 该值。
但是,它对几乎任何其他列都非常有用。