我想选择值,执行一些计算,比如说将两列相乘,然后将它们添加到其中一列值相同的位置。例如,如果我有一个如下所示的表:
id prm
1 12
3 14
1 13
2 20
1 17
3 11
我想首先将 id 和 prm 相乘,然后在有公共(public) id 的地方将它们相加,因此将添加第 1、第 3 和第 5 行,然后添加第 2 和第 6 行。然后我希望输出按 id 的降序排列。最终输出如下:
75 40 42
因为 3*14+3*11=75、2*20=40、1*12+1*13+1*17=42。 我希望我的问题很清楚。 有没有办法在一条sql语句中做到这一点?
最佳答案
select id, sum(id*prm)
from tablename
group by id order by 2 desc
检查这个-> http://sqlfiddle.com/#!9/07290/8如果这符合您的要求。
关于mysql - 在存在公共(public)列值的情况下执行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34793529/