Как сделать запрос в cqlengine, чтобы получить агрегированные значения из таблиц Кассандры

В Cassandra для получения агрегированных данных, таких как sum,avg,min,max, мы используем запрос вроде:

SELECT avg(race_points) FROM cycling.cyclist_points WHERE id=e3b19ec4-774a-4d1c-9e5a-decec1e30aac;

Но в cqlengine как это сделать? У меня есть столбцы с именем и возрастом. Я хочу получить средний возраст из списка. Пожалуйста, помогите мне получить среднее (возраст) в cqlengine.

1 ответ

Не удалось найти какой-либо агрегат в движке cql, нам нужно повторять набор запросов один за другим, использовать values_list, чтобы уменьшить использование памяти для большого набора запросов.

live_data = list(LiveStats.objects.all().values_list('cpuinfo', 'memused'))                                                                                                      
total_count = len(live_data)
        if total_count > 0:
            cpu_info, mem_used = 0, 0
            for live in live_data:
                cpu_info += live[0]
                mem_used += live[1]
            avg_cpu = cpu_info / total_count
            avg_memory = mem_used / total_count
Другие вопросы по тегам