Команда ReQL: avg
Синтаксис команды
sequence.avg([field | function]) → number r.avg(sequence, [field | function]) → number
Описание
Вычисляет среднее значение всех элементов последовательности. Если используется имя поля, вычисляет среднее значение всех значений этого поля в последовательности, пропуская элементы последовательности, у которых отсутствует это поле. Если используется функция, применяет эту функцию к каждому элементу последовательности и вычисляет среднее значение результатов, пропуская элементы последовательности, где эта функция возвращает nil или ошибку отсутствия данных.
Возвращает ошибку отсутствия данных, если вызвана на пустой последовательности. Вы можете обработать этот случай с помощью default.
Пример: Каково среднее значение 3, 5 и 7?
r([3, 5, 7]).avg().run(conn)
Пример: Каково среднее количество очков, набранных в одной игре?
r.table('games').avg('points').run(conn)
Пример: Каково среднее количество очков, набранных в одной игре, включая бонусные очки?
r.table('games').avg{|game| game['points'] + game['bonus_points']}.run(conn)
Пример: Каково среднее количество очков, набранных в одной игре? (Но верните nil вместо генерации ошибки, если нет игр, в которых были набраны очки.)
r.table('games').avg('points').default(nil).run(conn)
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/ruby/avg/