Изменения

Общий вид статистики

186 байтов добавлено, 22:31, 14 августа 2010
м
Нет описания правки
* Показатели продаж: кто купил, что купил, за сколько купил.
Общая фишка: Вычисляется Агрегат(Функция(Показатель)). Агрегат и Функция необязательны, то есть может быть просто Функция(Показатель) или Агрегат(Показатель) или просто Показатель. Функции — любые преобразования показателей, те же даты и т. п. А агрегаты — это агрегатные функции:#* Минимум, максимум#* Сумма, количество, среднее#* Количество уникальных значений#* Дисперсия (среднеквадратичное отклонение)
== Построения Построение отчёта ==
Во-первых, задаются условия выборки данных — потенциально, любые (просто WHERE в SQL-запросе). В простейшем виде — выбор одного значения или диапазона для каждого поля.
И самое интересное — произвольный набор полей для группировки. Для каждого поля выбирается:
# Тип группировки. На каждый тип можно выбрать несколько полей. Доступные типы, по порядку убывания приоритета (то есть сначала всегда группируется по тем типам, которые выше в списке):
#* Несколько таблиц — для каждого значения данного поля будет построена отдельная таблица.
#* По вертикали — значения данного поля будут отложены по вертикальной оси (в таблице — слева тела таблицы).
# Тип сортировки — либо по значениям самого поля, либо по А(Ф(П)) любого другого поля, группируемого не по всем выбранным полям, а только по полям с типом группировки «несколько таблиц» и полям с группировкой того же типа, что и данное поле, но предшествующим данному полю.
Важная фишка в том, что на каждый тип группировки можно выбрать несколько полей, и всё отобразится корректно. {{note}} Звучит Последний пункт звучит страшно, но выглядит, на самом деле, отражает довольно интуитивноинтуитивное поведение. Примеры: для * Для единственного поля по вертикали это будет А(Ф(П)) за соответствующую строку таблицы (например, общая сумма прибыли за строку). * Для единственного поля по горизонтали — аналогично, за соответствующий столбец таблицы. * Для поля в ячейках — за все ячейки, но только за их части, соответствующие данному значению. * Если же по вертикали не одно, а два поля, то для первого («внешнего») это будет А(Ф(П)) за все строки, соответствующие его значению, а для второго («внутреннего») — А(Ф(П)) за все строки, соответствующие значениям ''обоих'' полей. То есть «внутреннее» поле и будет сортироваться как бы «внутри» каждого значения внешнего.