«глобальные» вычисления для отсортированных множеств - PullRequest
4 голосов
/ 14 ноября 2011

С отсортированным набором, есть ли простой способ для вычисления «глобальных» значений, например, среднего, медианы, максимума, минимума и т. Д. Всех баллов в наборе, или мне всегда нужно извлечь баллы и делать ли вычисления самостоятельно (что немного мучительно ...)?

Ответы [ 3 ]

4 голосов
/ 08 ноября 2013

Вы можете сделать все это с помощью ZCARD и ZRANGE (конечно, без баллов).

  • Мин: ZRANGE по индексу 0
  • Макс .: ZRANGE по максимальному индексу (значение ZCARD)
  • Медиана: ZRANGE по среднему индексу (ZCARD / 2)
  • Среднее: вы можете сохранить итоговое значение по всему счету в другом счетчике, а затем разделить его на значение ZCARD
1 голос
/ 15 ноября 2011

Нет простого способа сделать это.Команд агрегации не так много.

Редактировать: если это то, что вам нужно сделать, возможно, отсортированный набор (или даже повторный вызов) не подходит.Можете ли вы уточнить ваш вариант использования?

0 голосов
/ 15 ноября 2011

Вы можете добавить еще один ключ с суммой всех баллов в отсортированном наборе.Вам придется обновлять его вручную (возможно, в multi / exec) при каждой вставке / обновлении / удалении отсортированного набора.Затем вы можете получить значение и разделить его на ZCARD, чтобы получить среднее значение.

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