简体   繁体   中英

MySQL sum per IDs without subqueries

I'm working on a huge dataset, with a table that looks like this :

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

I need to multiply value1 and value2 for each row, and sum values per id and otherid. A result table might be:

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

My question is if it is possible to avoid subqueries to do this, I only found solutions that used them.

Thanks!

it's easy.

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

Try Below Query

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM