Asl*_*986 1 postgresql normalization window-functions
假设我有一个包含架构的表:
id value
1 0.3
2 0.6
5 0.1
4 0.7
Run Code Online (Sandbox Code Playgroud)
由...提供
CREATE TABLE foo AS
SELECT * FROM (
VALUES (1,0.3::float),(2,0.6),(5,0.1),(4,0.7)
) AS x(id, value)
Run Code Online (Sandbox Code Playgroud)
我想离散值列。
这个想法是对值进行排序,并将 1 与前半部分相关联,将 2 与第二部分相关联。
id value normalized
1 0.3 1
2 0.6 2
5 0.1 1
4 0.7 2
Run Code Online (Sandbox Code Playgroud)
我不知道如何在 SQL 中做到这一点,有什么帮助吗?
PS:我正在使用 Postgres,所以任何依赖 Postgres 的解决方案也可以
您可以使用该NTILE()
功能:
select id, value,
ntile(2) over (order by value) as normalized
from table_name ;
Run Code Online (Sandbox Code Playgroud)
这2
意味着在根据over
子句排序后,这些值应该被分成两个桶:(ORDER BY value)
。
归档时间: |
|
查看次数: |
201 次 |
最近记录: |