MySQL中具有相似ID的行的乘法和

Gal*_*Gal 8 mysql select sum

我在一个叫做"购买"的表格中有3列:

id         amount         price
2          2              21
2          5              9
3          8              5
Run Code Online (Sandbox Code Playgroud)

我想对具有相似ID的所有行进行分组,并将此数组作为结果:

array([0] => [id => 2, total => 87 (because 2*21+5*9=87)], [1] => [id => 3, total => 40 (because 8*5=40)])
Run Code Online (Sandbox Code Playgroud)

作为具有相似ID的行的SUM(金额*价格)的总帐户.

我试过用了

SELECT id, SUM(p.price*p.amount) total FROM purchases p GROUP by p.id
Run Code Online (Sandbox Code Playgroud)

但它不能很好地工作(即它没有实现我想要的,这就是我上面写的).关于如何在mysql中执行此操作的任何想法?

查询返回的示例:

    id         amount         price
    2          3              89
    2          3              19

    SELECT id, SUM(p.price*p.amount) total FROM purchases p GROUP by p.id

==> [id => 2, total => 183]
Run Code Online (Sandbox Code Playgroud)

Vin*_*rat 17

SELECT
id, 
SUM(amount*price) AS total
FROM mytable
GROUP BY id
Run Code Online (Sandbox Code Playgroud)

数据:

| id | amount | price |
|----|--------|-------|
| 2  | 3      | 19    |
| 2  | 3      | 89    |
| 3  | 203    | 1     |
Run Code Online (Sandbox Code Playgroud)

结果:

id  total
2   324
3   203
Run Code Online (Sandbox Code Playgroud)