sql Группировать по столбцам в одну строку без объединения - PullRequest
0 голосов
/ 13 декабря 2018

Я сгруппировал продажи из ракурса продаж с продажами ниже, используя

Select id, name, Count(*) as [Sales], product, amount
from vwSales
Group by
id,name, product, amount


ID  |  Name  | Sales  | Product  | Amount
1   |  Bob   |   4    |  Fridge  |  40 
1   |  Bob   |  12    |  Washer  |  120
2   |  Anne  |   5    |  Fridge  |  50 
2   |  Anne  |   4    |  Washer  |  40

Можно ли сгруппировать их в одну строку без использования объединения?Так что таблица выглядит примерно так:

ID  |  Name  | Fridge Sales  |  fridge Amt  | Washer sales | washer amt
1   |  Bob   |    4          |     40       |      12      |   120          
2   |  Anne  |    5          |     50       |      4       |   40         

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете сделать условное агрегирование:

select id, name,
       sum(case when Product = 'Fridge' then 1 else 0 end) as [Fridge Sales],
       sum(case when Product = 'Fridge' then Amount else 0 end) as [fridge Amt], 
       sum(case when Product = 'Washer' then 1 else 0 end) as [Washer Sales],
       sum(case when Product = 'Washer' then Amount else 0 end) as [Washer Amt]
from vwSales
Group by id, name; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...