Сумма умножения столбцов для строк с похожими идентификаторами в MySQL

У меня есть 3 столбца в таблице под названием «покупки»:

id         amount         price
2          2              21
2          5              9
3          8              5

Я хочу сгруппировать все строки с похожими идентификаторами и получить в результате такой массив:

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

поскольку total учитывает СУММ (сумма * цена) для строк с похожими идентификаторами .

Я пробовал использовать

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

, но он не работает (т.е. не достигает того, что я хочу, о чем я писал выше). Есть идеи, как это сделать в 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]
8
задан Gal 17 January 2011 в 10:38
поделиться