Cache': техника группировки
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: тезис, доклад по географии на тему
| Добавил(а) на сайт: Kapitolina.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата
. s count=$p(^group(i),"~",3)
. s group(color,figure)=count+$G(group(color,figure),0)
q
Здесь выполняется проход по исходным данным, для наглядности значения полей сохраняются в отдельных переменных, после чего выполняется сложение. Функция $G используется для случая, если это сложение выполняется первый раз. Вместо сложения можем использовать любую иную функцию группирования, но в нашем примере будем пользоваться для простоты только одним сложением в столбик. После того, как данные сгруппированы в виде
group(color,figure)=SUM(count)
мы можем их получить одним проходом с помощью функции $QUERY:
WriteGroupedQ()
d QroupQ()
n color,figure,count,cf
s cf="group"
f s cf=$Q(@cf) q:cf="" d
. s color=$qs(cf,1)
. s figure=$qs(cf,2)
. s count=@cf
. w color,?15,figure,?30,count,!
q
Здесь значения полей получаются с помощью функции $QSUBSCRIPT. В случае использования этого типа группировки мы можем использовать несколько полей группирования и все равно сможем получить результат одним проходом. В целях создания более-менее формализованной обобщенной функции мы можем использовать номера в аргументах $QS. Если их получать из формальной спецификации запроса, то нет необходимости организовывать вложенные циклы прохода по уровням индексов.
Рассмотрим парный вышеприведенному метод группирования, ориентированный на использование функции $ORDER:
GroupO()
; group to use $ORDER function
; use SUM function
k group
n i,color,figure,count
s i=""
f s i=$O(^group(i)) q:i="" d
Рекомендуем скачать другие рефераты по теме: виды шпор, в контакте сообщения.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата