получить сумму значений DISTINCT в SQL и показать ее в записи - PullRequest
0 голосов
/ 03 июля 2018

У меня есть таблица SQL,

 Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     9
 2         | 3             |     4

Я хочу sum(power) со значением DISTINCT Card_A и Card_B. Когда Card_A = 2 и Card_B = 3, есть два одинаковых значения мощности, 9 и 4 соответственно. Вывод должен быть,

 Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     13

Этот запрос SQL, я пытался,

SELECT DISTINCT card_A, card_B, sum(power) FROM foo ;

Я использую POstgresql. Решение MySQL тоже будет принято.

1 Ответ

0 голосов
/ 03 июля 2018

Я думаю, вам нужно использовать GROUP BY вместо DISTINCT:

SELECT card_a, card_b, SUM(power)
FROM foo
GROUP BY card_a, card_b;

Это должно дать вам результат, к которому вы стремитесь.

DISTINCT найдет вам уникальные записи в наборе результатов, но он не будет правильно суммировать значения.

Использование GROUP BY создаст группы указанных вами столбцов (в данном случае card_a и card_b), и для каждой из этих групп будет вычислена сумма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...