mysql - 在存在公共(public)列值的情况下执行计算

标签 mysql sql

我想选择值,执行一些计算,比如说将两列相乘,然后将它们添加到其中一列值相同的位置。例如,如果我有一个如下所示的表:

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/

相关文章:

mysql插入与更新性能

c# - 不在 linq to sql 之间

sql - 如何在数据库中导致超时异常?

php - fatal error : Uncaught Error: Call to a member function bindValue()

mysql - 无法远程连接mysql

mysql - 连接可选的空值

MySQL 正则表达式 : matching blank entries

php - MySQL GROUP BY 计数

SQL : Remove duplicate based on a critera

c# - 使用 Linq to SQL 将 C# 对象与 Varbinary 相互转换