2013-07-16 7 views
-3

Я пытаюсь сделать сумму по группе и рассчитать, сколько процентов приходится на каждую группу. Легко сделать SUMIF используя GROUP BY но я застрял на SUM (ALL) - Я предполагаю, что я мог бы попытаться сделать SUM(CASE IF GROUP='A' THEN END) + SUM(CASE IF GROUP='B'... но WhatIf есть больше GROUP :(Выполнение вычисления процента в SQL

SELECT GROUP, SUM(SALES), SUM(SALES)/TOTAL FROM DATABASE.SALETABLE

enter image description here

ответ

3

Вы можете использовать SUM ... OVER(), чтобы получить общий объем продаж.

SELECT [Group], 
     SUM(SALES) AS [Sales], 
     100.0 * SUM(SALES)/SUM(SUM(SALES)) OVER() AS [%] 
FROM YourTable 
GROUP BY [Group] 

SQL Fiddle

+0

Я просто понял это - с помощью 'SUM (SALES)/(SELECT SUM (SALES)' – user2103670

+0

спасибо, что не позволяет мне принять решение, как сразу же, что почему – user2103670

Смежные вопросы