2015-07-07 3 views
1

У меня есть таблица данных и вам нужно извлечь счетчик значений в таблице отчетов по excel, , но мне нужно показать все строки и столбцы в моем отчете.Как суммировать данные в sql?

Моя таблица выглядит следующим образом:

ID Val Sets 
1 aa 25 
2 aa 26 
3 bb 25 
4 cc 27 
5 aa 27 
6 aa 25 

И мой отчет в следующем формате:

25 26 27 
aa 2 1 1 
bb 1 0 0 
cc 0 0 1 
+2

вы можете легко достичь этой цели, используя «pivot» в sql. –

ответ

2

С условной агрегацией:

select val, 
     sum(case when sets = 25 then 1 else 0 end) as [25], 
     sum(case when sets = 26 then 1 else 0 end) as [26], 
     sum(case when sets = 27 then 1 else 0 end) as [27] 
from tablename 
group by val 

С поворотом:

select val, 
     [25], 
     [26], 
     [27] 
from tablename 
pivot(count(id) for sets in([25],[26],[27]))p 
+0

спасибо, это работа, но только для 25,26,27 у меня много столбцов! как использовать этот запрос для многих наборов? –

+0

Ищите динамический поворот. Здесь есть много подобных вопросов. Например, http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query –

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