Использование статистических функций
В данном подразделе содержатся примеры использования агрегатных функций (Sum, Min, Max, Count и Distinct Count) в измерениях. Примеры запросов основаны на тех же ячейках куба, что и следующие примеры, так что можно увидеть эффекты от изменения функции.
Куб, используемый в примерах, содержит одну меру, «Продажи», основанную на столбце Sales_Amount в таблице фактов Sales. Куб имеет три измерения.
Измерение «Заказчики» определено на таблице Customers и содержит следующие уровни от самого высокого до самого низкого:
(All) все;
заказчик определяется столбцом имени Customer_Name и столбцом ключа Customer_ID.
Измерение «Розничные магазины» определено на таблице Retail_Stores и содержит следующие уровни от самого высокого до самого низкого:
(All) все;
розничный магазин определяется элементом столбца имени Retail_Store_Name и элементом ключевого столбца Retail_Store_ID.
Измерение «Продукция» определено на таблице Products и содержит следующие уровни от самого высокого до самого низкого:
(All) все;
категория продукта определяется элементом столбца имени Product_Category и элементом ключевого столбца;
продукт определяется элементом столбца имени Product_Name и элементом ключевого столбца Product_ID.
Дополнительные сведения об измерениях и уровнях см. в разделе «Измерения и уровни».
Здесь показана схема куба.
Здесь показана таблица фактов Sales куба.
Transaction_ID |
Customer_ID |
Product_ID |
Retail_Store_ID |
Sales_ Сумма |
---|---|---|---|---|
1 |
1 |
1 |
1 |
300 |
2 |
1 |
1 |
1 |
250 |
3 |
1 |
1 |
1 |
250 |
4 |
1 |
2 |
1 |
100 |
5 |
1 |
4 |
1 |
700 |
6 |
2 |
1 |
2 |
290 |
7 |
2 |
2 |
2 |
90 |
8 |
2 |
3 |
3 |
510 |
9 |
3 |
1 |
4 |
350 |
10 |
3 |
2 |
3 |
110 |
11 |
4 |
3 |
4 |
550 |
12 |
4 |
4 |
4 |
750 |
Здесь показана таблица измерения Заказчики куба.
Customer_ID |
Customer_Name |
Customer_Address_ Line_1 |
Customer_Address_ Line_2 |
---|---|---|---|
1 |
A |
1 A Street |
Aville, AA 55555 |
2 |
B |
2 B Street |
Bville, BB 55555 |
3 |
C |
3 C Street |
Cville, CC 55555 |
4 |
D |
4 D Street |
Dville, DD 55555 |
Здесь показана еще одна таблица измерения, Розничные магазины, куба.
Retail_ Store_ID |
Retail_Store_ Name |
Retail_Store_ Address_Line_1 |
Retail_Store_ Address_Line_2 |
---|---|---|---|
1 |
A |
1 A Avenue |
Atown, AA 55555 |
2 |
B |
2 B Avenue |
Btown, BB 55555 |
3 |
C |
3 C Avenue |
Ctown, CC 55555 |
4 |
D |
4 D Avenue |
Dtown, DD 55555 |
Здесь приведена таблица последнего измерения куба — Продукция.
Product_ID |
Product_Name |
Product_Description |
Product_Category |
---|---|---|---|
1 |
A |
aaaa aaaa aaaa |
AB |
2 |
B |
bbbb bbbb bbbb |
AB |
3 |
C |
cccc cccc cccc |
CD |
4 |
D |
dddd dddd dddd |
CD |
SUM
Если свойству Статистическая функция присвоено значение Sum, значение меры для ячейки куба вычисляется добавлением значений исходного столбца измерений из тех строк, для которых сочетание элементов определяет ячейку и потомков ее элементов.
Примеры
Следующие примеры возвращают значения, представляющие общие продажи.
A. Запрос одной ячейки атомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и продукта А возвращает 800.
Б. Запрос одной ячейки неатомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и категории продуктов АB возвращает 900.
В. Запрос нескольких ячеек куба
Запрос по мере «Продажи» помещает каждый розничный магазин по оси X, продукты по категориям — по оси Y и делает срез по всем заказчикам. Он возвращает следующий набор данных.
Все розничные магазины |
A |
Б |
В |
Г |
|||
Все продукты |
4250 |
1600 |
380 |
620 |
1650 |
||
AB |
1740 |
900 |
380 |
110 |
350 |
||
A |
1440 |
800 |
290 |
350 |
|||
Б |
300 |
100 |
90 |
110 |
|||
CD |
2510 |
700 |
510 |
1300 |
|||
В |
1060 |
510 |
550 |
||||
Г |
1450 |
700 |
750 |
Min
Если значение свойства Агрегатная функция установлено в Min, значение меры для ячейки куба вычисляется добавлением минимального значения исходного столбца измерений из тех строк, для которых сочетание элементов определяет ячейку и потомков ее элементов.
Примеры
Следующие примеры возвращают значения, представляющие самые низкие продажи.
A. Запрос одной ячейки атомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и продукта А возвращает 250.
Б. Запрос одной ячейки неатомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и категории продуктов АB возвращает 100.
В. Запрос нескольких ячеек куба
Запрос по мере «Продажи» помещает каждый розничный магазин по оси X, продукты по категориям — по оси Y и делает срез по всем заказчикам. Он возвращает следующий набор данных.
Все розничные магазины |
A |
Б |
В |
Г |
|||
Все продукты |
90 |
100 |
90 |
110 |
350 |
||
AB |
90 |
100 |
90 |
110 |
350 |
||
A |
250 |
250 |
290 |
350 |
|||
Б |
90 |
100 |
90 |
110 |
|||
CD |
510 |
700 |
510 |
550 |
|||
В |
510 |
510 |
550 |
||||
Г |
700 |
700 |
750 |
Max
Если значение свойства Агрегатная функция установлено в Max, значение меры для ячейки куба вычисляется добавлением максимального значения исходного столбца измерений из тех строк, для которых сочетание элементов определяет ячейку и потомков ее элементов.
Примеры
Следующие примеры возвращают значения, представляющие самые высокие продажи.
A. Запрос одной ячейки атомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и продукта А возвращает 300.
Б. Запрос одной ячейки неатомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и категории продуктов АB возвращает 300.
В. Запрос нескольких ячеек куба
Запрос по мере «Продажи» помещает каждый розничный магазин по оси X, продукты по категориям — по оси Y и делает срез по всем заказчикам. Он возвращает следующий набор данных.
Все розничные магазины |
A |
Б |
В |
Г |
|||
Все продукты |
750 |
700 |
290 |
510 |
750 |
||
AB |
350 |
300 |
290 |
110 |
350 |
||
A |
350 |
300 |
290 |
350 |
|||
Б |
110 |
100 |
90 |
110 |
|||
CD |
750 |
700 |
510 |
750 |
|||
В |
550 |
510 |
550 |
||||
Г |
750 |
700 |
750 |
Count
Если значение свойства Агрегатная функция установлено в Count, значение меры для ячейки куба вычисляется добавлением количества значений исходного столбца измерений из тех строк, для которых сочетание элементов определяет ячейку и потомков ее элементов.
Примеры
Следующие примеры возвращают значения, которые представляют количество транзакций, связанных с продажами.
A. Запрос одной ячейки атомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и продукта А возвращает 3.
Б. Запрос одной ячейки неатомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и категории продуктов АB возвращает 4.
В. Запрос нескольких ячеек куба
Запрос по мере «Продажи» помещает каждый розничный магазин по оси X, продукты по категориям — по оси Y и делает срез по всем заказчикам. Он возвращает следующий набор данных.
Все розничные магазины |
A |
Б |
В |
Г |
|||
Все продукты |
12 |
5 |
2 |
2 |
3 |
||
AB |
8 |
4 |
2 |
1 |
1 |
||
A |
5 |
3 |
1 |
1 |
|||
Б |
3 |
1 |
1 |
1 |
|||
CD |
4 |
1 |
1 |
2 |
|||
В |
2 |
1 |
1 |
||||
Г |
2 |
1 |
1 |
Distinct Count
Если значение свойства Агрегатная функция установлено в Distinct Count, значение меры для ячейки куба вычисляется добавлением количества уникальных значений исходного столбца измерений из тех строк, для которых сочетание элементов определяет ячейку и потомков ее элементов.
Мера, у которой свойство Статистическая функция установлено в значение Distinct Count, называется мерой числа различных объектов. Мера числа различных объектов может быть использована для подсчета вхождений элементов измерений самого низкого уровня в таблице фактов. Так как подсчитываются только уникальные объекты, то элемент, встречающийся несколько раз, посчитается только однажды.
Меры числа различных объектов обычно используются, чтобы определить, сколько различных элементов другого измерения самого низкого уровня приходится на каждый элемент некоторого измерения в таблице фактов. Например, в кубе «Продажи», как много различной продукции было приобретено каждым покупателем или группой покупателей. (Т. е. сколько различных элементов измерения «Продукция» самого низкого уровня приходится на каждый элемент измерения «Заказчики» в таблице фактов.) Или, например, в кубе Internet Site Visits: как много разных веб-страниц приходится на каждого посетителя или группу посетителей? (Т. е. сколько различных элементов измерения «Страницы» самого низкого уровня приходится на каждый элемент измерения «Посетители» в таблице фактов.) В каждом из этих примеров элементы самого низкого уровня вторых измерений подсчитаны как мера числа различных объектов.
Этот вид анализа может не ограничиваться двумя измерениями. Мера числа различных объектов может быть разделена и срезана любыми сочетаниями измерений в кубе, включая измерение, которое содержит подсчитываемые элементы.
Мера числа различных объектов, которая подсчитывает элементы, основана на столбце внешнего ключа в таблице фактов. (Т. е. свойство меры Исходный столбец определяет этот столбец.) Этот столбец соединяет столбец таблицы измерения, который определяет элементы, подсчитываемые мерой числа различных объектов.
Обычные кубы ограничены в использовании мер числа различных объектов. В обычном кубе разрешается только одна мера числа различных объектов, которая допускается только в случае, если обычный куб не включает измерения с операторами пользовательской свертки или формулами пользовательской свертки. Однако виртуальные кубы не подвержены таким ограничениям. Виртуальные кубы могут использовать несколько мер числа различных объектов и могут использовать операторы пользовательской свертки и формулы пользовательской свертки в конъюнкции с мерами числа различных объектов.
Так как меры числа различных объектов не аддитивны, представление мер числа различных объектов значительно ограничивает возможности служб Microsoft® SQL Server™ 2000 Analysis Services в статистической обработке кубов. По этой причине рекомендуется, чтобы каждый счетчик различных объектов располагался в своем собственном кубе без других мер. Такие кубы с мерами числа различных объектов впоследствии могут быть соединены с другими кубами в виртуальный куб, который эффективно управляет всеми мерами.
Примечание |
---|
Если куб использует меру числа различных объектов, то куб целиком воспринимается как неаддитивный. Неаддитивные кубы не поддерживают динамически созданных элементов, поэтому функции многомерных выражений, такие как VisualTotals, создающие элементы динамически, возвратят ошибку при использовании в неаддитивном кубе. Это также влияет и на другие функции, такие как поддержка визуальных итогов в безопасности измерений, которые учитывают динамически созданные элементы. |
Примеры
Следующие примеры возвращают значения, которые представляют количество транзакций, связанных с продажами, имеющими уникальную цену.
A. Запрос одной ячейки атомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и продукта А возвращает 2.
Б. Запрос одной ячейки неатомарного куба
Запрос по мере «Продажи» для заказчика А, розничного магазина А и категории продуктов АB возвращает 3.
В. Запрос нескольких ячеек куба
Запрос по мере «Продажи» помещает каждый розничный магазин по оси X, продукты по категориям — по оси Y и делает срез по всем заказчикам. Он возвращает следующий набор данных.
Все розничные магазины |
A |
Б |
В |
Г |
|||
Все продукты |
11 |
4 |
2 |
2 |
3 |
||
AB |
7 |
3 |
2 |
1 |
1 |
||
A |
4 |
2 |
1 |
1 |
|||
Б |
3 |
1 |
1 |
1 |
|||
CD |
4 |
1 |
1 |
2 |
|||
В |
2 |
1 |
1 |
||||
Г |
2 |
1 |
1 |
См. также