СУММА SQL на основе результата предыдущей СУММЫ

#sql #sum

Вопрос:

Некоторое время работал с C# и, похоже, забыл некоторые основы SQL
После долгих поисков в Интернете, просто не могу никуда попасть.
Как мне использовать «Результат» суммы в качестве входных данных для другой функции?
Ищете вариант А, а не В

a) ВЫБЕРИТЕ Col1,Col2, СУММУ(Col1*Col2) В КАЧЕСТВЕ «Результата», СУММУ(Результат/10) В КАЧЕСТВЕ «Окончательного» ИЗ … СГРУППИРОВАТЬ ПО

б) ВЫБЕРИТЕ Col1,Col2, СУММУ(Col1 Col2) В КАЧЕСТВЕ «Результата», СУММУ(СУММА(Col1 Col2)/10) В КАЧЕСТВЕ «Окончательного» ИЗ …

Ответ №1:

Вы не. Правильный расчет, по — видимому, будет:

 SELECT Col1, Col2, SUM(Col1*Col2) AS Result,
       SUM(Col1 * Col2 / 10) AS Final
FROM ...
GROUP BY
 

SQL в целом не позволяет повторно использовать псевдонимы в выражении. Итак, вам нужно повторить выражение, использовать CTE или использовать подзапрос.

Кроме того, вложенные функции агрегирования не поддерживаются стандартным SQL.

Комментарии:

1. Да, вариант Б был единственным способом, который я мог придумать без CTE. Спасибо