2015-12-02 3 views
1

Мой запрос:Как суммировать данные строки имеет такой же идентификатор

"SELECT sent_who, sent_amount FROM game1 ORDER BY sent_who ASC;" 

Выход:

array (size=4) 
    0 => 
    array (size=4) 
     'sent_who' => string '1' (length=1) 
     0 => string '1' (length=1) 
     'sent_amount' => string '1' (length=1) 
     1 => string '1' (length=1) 
    1 => 
    array (size=4) 
     'sent_who' => string '2' (length=1) 
     0 => string '2' (length=1) 
     'sent_amount' => string '1' (length=1) 
     1 => string '1' (length=1) 
    2 => 
    array (size=4) 
     'sent_who' => string '2' (length=1) 
     0 => string '2' (length=1) 
     'sent_amount' => string '1' (length=1) 
     1 => string '1' (length=1) 
    3 => 
    array (size=4) 
     'sent_who' => string '2' (length=1) 
     0 => string '2' (length=1) 
     'sent_amount' => string '1' (length=1) 
     1 => string '1' (length=1) 

Что я хочу:

array (size=4) 
    0 => 
    array (size=4) 
     'sent_who' => string '1' (length=1) 
     0 => string '1' (length=1) 
     'sent_amount' => string '1' (length=1) 
     1 => string '1' (length=1) 
    1 => 
    array (size=4) 
     'sent_who' => string '2' (length=1) 
     0 => string '2' (length=1) 
     'sent_amount' => string '3' (length=1) 
     1 => string '1' (length=1) 

Я хочу слиться же sent_who в массиве , также сумма sent_amount в том же массиве. Если я использовать GROUP BY вместо ORDER BY это работает для sent_who, но это не даст сумму sent_amount

ответ

1

Попробуйте это:

SELECT sent_who, SUM(sent_amount) as total_sent_amount 
FROM game1 
GROUP BY sent_who 
ORDER BY sent_who ASC 

Использование SUM(sent_amount) будет суммировать все значения sent_amount для конкретного sent_who который мы сгруппировали, используя GROUP BY sent_who.

Итак, вы получите массив, как вы ожидаете.

Смежные вопросы