Не можете да ГРУПИРАТЕ ПО дейност, документ, извличане
в рамките на PIVOT
табличен оператор, PIVOT
операторът автоматично извежда групираните колони. Но можете да го напишете по следния начин:
WITH PivotedAS( SELECT * FROM table1 PIVOT ( sum([Count]) FOR [Type] IN (Document, Extraction) ) AS p) SELECT product, SUM(Users) AS TotalUsers, MAX(Date) AS LatestDate, MAX(Документ) КАТО Документ, MAX(Извличане) КАТО ИзвличанеFROM PivotedGROUP BY Product;
Демонстрация на SQL Fiddle
Това ще ви даде:
<предварителен код>| ПРОДУКТ | ОБЩО ПОТРЕБИТЕЛИ | ПОСЛЕДНА ДАТА | ДОКУМЕНТ | ЕКСТРАКЦИЯ |------------------------------------------------ ------------------------------| продА | 60 | 02 март 2013 г. 02:00:00+0000 | 113 | 152 || prodB | 45 | 02 март 2013 г. 02:00:00+0000 | 40 | 73 |Актуализация 1
WITH aAS( SELECT activity, username, [Last Accessed] =max(DATEADD(dd, DATEDIFF(d, 0, ActDateTime), 0)), --[#Users] =count(distinct username) , CASE WHEN COUNT(activity) НЕ Е NULL THEN 1 ELSE 0 END AS Count, CASE WHEN pageURL LIKE '/Document%' OR pageURL LIKE '/Database%' THEN 'Document' ELSE 'Extraction' END AS [Type] from activitylog където pageURL не като '%home%' И pageURL не като '/Default%' група по активност, потребителско име, ...), PivotedAS( SELECT * FROM a PIVOT ( sum([Count]) FOR [Type] IN ( Document , Извличане) ) AS p) ИЗБЕРЕТЕ продукт, SUM(Потребители) AS TotalUsers, MAX(DAte) AS LatestDate, MAX(Document) AS Document, MAX(Extraction) AS ExtractionFROM PivotedGROUP BY Product;