可以说我有一个带有模式的表:
id value
1 0.3
2 0.6
5 0.1
4 0.7
由...提供
CREATE TABLE foo AS
SELECT * FROM (
VALUES (1,0.3::float),(2,0.6),(5,0.1),(4,0.7)
) AS x(id, value)
我想离散化值列。
这个想法是对值进行排序,并将 1 与前半部分相关联,将 2 与后半部分相关联。
id value normalized
1 0.3 1
2 0.6 2
5 0.1 1
4 0.7 2
我不知道如何在 SQL 中执行此操作,有什么帮助吗?
PS:我正在使用 Postgres,因此任何依赖 Postgres 的解决方案也都可以
您可以使用以下
NTILE()
功能:这意味着在根据子句
2
排序后,值应分为两个桶: 。over
(ORDER BY value)