Сумма целых чисел ошибка django.db.utils.ProgrammingError: функция sum(jsonb) не существует
Я пытаюсь агрегировать Sum() в наборе запросов, поля - простые IntegerField(), но появляется эта ошибка.
Ошибка:
Код:
ticket_history_aggregation = TicketHistoryAggregation.objects.filter(
aggregation_date__date__gte=date_from,
aggregation_date__date__lte=date_to,
category=categories,
# stores=stores,
team=teams,
)
if ticket_history_aggregation.count() > 1:
ticket_history_aggregation = ticket_history_aggregation.aggregate(
ticket_total=Sum("ticket_total"),
ticket_queue=Sum("ticket_queue"),
ticket_queue_expiring=Sum("ticket_queue_expiring"),
ticket_processing_expiring=Sum("ticket_processing_expiring"),
ticket_pending=Sum("ticket_pending"),
ticket_solved=Sum("ticket_solved"),
ticket_unapplicable=Sum("ticket_unapplicable"),
ticket_processing=Sum("ticket_processing"),
ticket_closed=Sum("ticket_closed"),
ticket_store=Sum("ticket_store"),
ticket_store_managed=Sum("ticket_store_managed"),
ticket_store_total=Sum("ticket_store_total"),
ticket_queue_w_time=Avg("ticket_queue_w_time"),
ticket_pending_w_time=Avg("ticket_pending_w_time"),
ticket_processing_w_time=Avg("ticket_processing_w_time"),
ticket_working_w_time=Avg("ticket_working_w_time"),
ticket_closed_w_time=Avg("ticket_closed_w_time"),
# ticket_public_post_processed_w_time=Sum(
# F("ticket_public_post_processed_w_time")
# ),
ticket_queue_time=Avg("ticket_queue_time"),
ticket_pending_time=Avg("ticket_pending_time"),
ticket_processing_time=Avg("ticket_processing_time"),
ticket_working_time=Avg("ticket_working_time"),
ticket_closed_time=Avg("ticket_closed_time"),
)
Django Ver: 2.2.3
Postgres: 12
Я пробовал с:
ticket_queue=Sum(F("ticket_closed")),
и
ticket_queue=Sum(Cast(F("ticket_closed"), output_field=IntegerField())
Но ошибка осталась, это первый раз, когда это происходит со мной, кстати, это простые целочисленные поля. Может вы знаете, что я могу почувствовать или где я ошибаюсь? Спасибо за помощь
Я думаю, что здесь кроется проблема: вы пытаетесь Sum
несколько полей, которые объявлены как JSONField
в вашей модели:
ticket_store=Sum("ticket_store"),
ticket_store_managed=Sum("ticket_store_managed"),
ticket_store_total=Sum("ticket_store_total"),
У вас либо проблема в определении модели, либо в агрегированном предложении