根据分组

时间:2016-03-27 18:11:18

标签: mysql

我想存储给定列的百分比值,但是基于其他两个字段的分组:

Select FieldA,FieldB,
       Value/(Select sum(Value) from Table1  group by FieldA,FieldB) 
from Table1

一旦我做到这一点,我的目标就是把它变成一个更新当然但现在我正在

" [Err] 1242 - 子查询返回超过1行"

1 个答案:

答案 0 :(得分:2)

您需要一个相关的子查询:

Select FieldA, FieldB, Value / (Select sum(Value) 
                                from Table1  as t2
                                where t2.FieldA = t1.FieldA AND
                                      t2.FieldB = t1.FieldB) 
from Table1 as t1

查询的问题在于子查询返回多个值:每个FieldA, FieldB组一个,而执行除法需要标量值。使用相关性子查询返回标量值:与当前Value值对应的FieldA, FieldB之和。

相关问题