【发布时间】:2021-12-24 23:58:39
【问题描述】:
我的数据框如下所示:
id value
a 0:3,1:0,2:0,3:4
a 0:0,1:0,2:2,3:0
a 0:0,1:5,2:4,3:0
我想编写一个查询来获取列 value 中键的平均值?
例如对于0:3,1:0,2:0,3:4,它必须是(0+0+0+3+3+3+3)/7 = 1.71。
对于0:0,1:0,2:2,3:0,它必须是(2+2)/2=2。
对于0:0,1:5,2:4,3:0,它必须是(1+1+1+1+1+2+2+2+2)/9 = 1.44。
所以想要的结果是:
id value
a 1.71
a 2.00
a 1.44
如何做到这一点?有没有 sql 函数可以得到这个结果?
【问题讨论】:
-
我怀疑 SQL 可以做到这一点。您可以编写一个存储过程,但是对于这种操作,SQL 是一个糟糕的语言选择。最好/最容易在应用层完成。
-
select version();显示什么? -
键的数量是可变的吗?如果有,最多可以有多少?
-
您将
a显示为所有行的ID;是否有主键或其他唯一约束? -
@ysth 是的,除了“a”之外,id 列的值也可以是