Какое из этих выражений является более правильным использованием функции SUM ()? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь получить сумму некоторых дневных объемов, умноженную на их прейскурантную цену и курс, но заметил, что получаю немного разные результаты в зависимости от того, как я использую функцию SUM ().

Я попытался умножить поля внутри SUM (), а также переместить умножение за пределы функции агрегирования.

SELECT SUM(Vol * LP * Rate) FROM Table A
-- or
SELECT SUM(Vol) * LP * Rate FROM Table A GROUP BY LP, Rate

Поскольку эти результаты будут объединены с клиентом, я не ожидал, что буду обеспокоен группировкой, и до сих пор не понимаю, как это может быть проблемой.

1 Ответ

0 голосов
/ 09 июля 2019

Это разные вещи, поэтому вы должны использовать версию, соответствующую вашей проблеме.

Для второго вы должны включить LP и Rate в GROUP BY.

Это не обязательно - или даже не желательно - для первого.

Так вот и ответ. Используйте версию, соответствующую GROUP BY, которую вы хотите. Я полагаю, что обычно это первая версия.

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