【发布时间】:2021-01-14 10:00:51
【问题描述】:
在 PostgreSQL 中,如何在输出所有行的同时获得同一组(例如“retailer”)中所有其他行(例如“val”)的平均值?
例如,在下面,我想获取每行 val 列与所有其他具有相同类别的行相比的百分比。我想对每个类别都这样做。
Original table:
id | category | val
----------------------------
1 retailer 3
2 retailer 2
3 customer 1
4 retailer 5
5 customer 7
Example:
id | category | val | output
----------------------------
1 retailer 3 .3 (retailer1 value + all other retailer values / total values of retailers)
2 retailer 2 .2 (retailer2 value + all other retailer values / total values of retailers)
3 customer 1 .125 (1 / 1 + 7)
4 retailer 5 .5 (5 / 3 + 2 + 5)
5 customer 7 .875 (7 / 1 + 7)
Complete output:
id | category | val | output
----------------------------
1 retailer 3 .3
2 retailer 2 .2
3 customer 1 .125
4 retailer 5 .5
5 customer 7 .875
【问题讨论】:
标签: sql postgresql select sum window-functions