Таблица Агрегации стратегии (SSIS / Хранимая процедура / SSRS) - PullRequest
0 голосов
/ 24 октября 2011

У меня есть таблица с примерно 7 000 000 записей.

Это очень плоско, и ради аргумента у него есть 3 столбца, по которым я хочу собрать данные. Эта агрегация должна очень просто создавать счет / разворот каждого экземпляра этого значения.

* 1005 например *

Company     Status  Year
Hatstand    Open    2011
Hatstand    Closed  2011
Moonbase    Open    2011

будет производить

Count of Hatstand **2**
Count of Hatstand Open **1**
Count of Hatstand Open 2011 **1**

Так что это очень простой подсчет каждой «ветви» данных.

Моим первым выбором было использование матрицы управления SSRS. Который при тестировании с небольшим набором данных работал очень хорошо. Однако при использовании полного набора данных не будет работать.

Каков «правильный» способ решения этой проблемы?

Должен ли я предварительно агрегировать с помощью хранимой процедуры или задания SSIS? Или мне следует продолжить работу с маршрутом SSRS и попытаться уточнить свой запрос?

Спасибо

1 Ответ

2 голосов
/ 24 октября 2011

T-SQL является предпочтительным способом, если вы используете SQL Server 2005 или 2008.

Если вы используете SQL Server 2005 или 2008, вы можете попробовать:

SELECT *, COUNT(*) FROM TBL
GROUP BY COMPANY, STATUS, YEAR
WITH ROLLUP -- or WITH CUBE

Если вы используете SQL Server 2008, вы можете попробовать:

SELECT *, COUNT(*) FROM A
GROUP BY 
GROUPING SETS (
    (COMPANY),
    (COMPANY, STATUS),
    (COMPANY, STATUS, YEAR)
)

Для получения подробной информации о GROUP BY WITH ROLLUP / CUBE и ГРУППОВЫХ КОМПЛЕКТАХ смотрите GROUP BY .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...