没有子查询的每个ID的MySQL总和

时间:2014-02-25 16:39:11

标签: mysql sql subquery

我正在研究一个庞大的数据集,其表格如下所示:

+----+---------+--------+--------+
| id | otherid | value1 | value2 |
+----+---------+--------+--------+
|  1 |       1 |      2 |      5 |
|  1 |       1 |      4 |      8 |
|  1 |       2 |      3 |      6 |
|  2 |     123 |      1 |      4 |
+----+---------+--------+--------+

我需要为每一行乘以value1和value2,并为每个id和otherid求和值。结果表可能是:

+----+---------+-----+
| id | otherid | sum |
+----+---------+-----+
|  1 |       1 |  42 | ((2*5)+(4*8))
|  1 |       2 |  18 | (3*6)
|  2 |     123 |   4 | (1*4)
+----+---------+-----+

我的问题是,如果可以避免子查询这样做,我只找到使用它们的解决方案。

谢谢!

2 个答案:

答案 0 :(得分:2)

很容易。

  SELECT id,  
         otherid, 
         SUM(value1*value2) AS sum
    FROM your_table
GROUP BY id, otherid;

答案 1 :(得分:2)

尝试以下查询

SELECT ID,otherid ,SUM(value1  * value2) sum 
FROM TABLE1
GROUP BY ID,otherid