#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. Спасибо