У меня есть таблица продаж sale
со следующими столбцамиНайти среднее количество строк из общего количества
sale_id | Отдел | gross_amount
Мне нужно найти СРЕДНЕМ продаж в каждом отделении от общей продажи
например: - Таблица
sale_id Department gross_amount
1 A 10
2 B 30
3 A 25
4 c 5
Desired output
Department Gross_amount avg
A 35 50 --(35/70)*100
B 30 42.86 --(30/70)*100
C 5 7.14 --(5/70) *100
т.е. является dept_avg = (dept_total/всего) * 100 например: - dept_total of A = 35 total = A + B + C = 35 + 30 + 5 = 70
Я могу найти до Gross_amount
select Department ,sum(si.GrossPrice) gross_amt
from Sale si
group by Department
order by Department
Для получения СРЕДНЕМ я пытался следовать
select Department ,sum(si.GrossPrice) gross_amt,
AVG(sum(si.GrossPrice)) avg
from Sale si
group by Department
order by Department
Это дает мне ошибку
не может выполнить агрегатную функцию на выражении, содержащем агрегат или подзапрос.
Также я не уверен, что могу получить ожидаемую аверсию с вышеуказанным запросом. Как я могу достичь того же.
Вы можете исправить свой вопрос, чтобы использовать те же имена столбцов, где они идентичны, и объяснить, почему вы делите 100 раз все время? – Amit
@Amit я отредактировал мой вопрос..divison на 100.0 делает, чтобы получить две десятичные точки в ответе ... я удалил это, чтобы избежать путаницы – Sachu
Sachu, пожалуйста, не спешите ничего. Не торопитесь и решите: gross_amount, Gross_amount или GrossPrice? dept_avg или avg? Что такое dept_total? что общего? – Amit