Peewee генерирует верный запрос, но обращаясь к БД ничего не возвращает, хотя если вставить этот запрос в MySQL WB все работает

Запрос, который я пытаюсь сделать в python:

data = PlayerGroupTime \
        .select(PlayerGroupTime.player_id, fn.SUM(PlayerGroupTime.time)) \
        .group_by(PlayerGroupTime.player_id) \
        .order_by(fn.SUM(PlayerGroupTime.time).desc()) \
        .limit(10)

Далее, само собой peewee генерирует запрос, который выглядит так:

SELECT 
   `t1`.`player_id`, SUM(`t1`.`time`) 
FROM 
   `player_group_time` AS `t1` 
WHERE 
   (`t1`.`time` != 0) 
GROUP BY `t1`.`player_id` 
ORDER BY SUM(`t1`.`time`) DESC LIMIT 10

Но вместо того, чтобы вывести нужную информацию, выводится None, при этом в MySQL Workbench, подставляя генерируемый запрос, выводится все что нужно:

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Rise

После дебага кода, я увидел, что у все нужные значения у меня возвращается. Переменная row, если прокрутить через цикл for row in data, содержит нужные значения, а хапрос нужно немного переписать, чтобы нормально обратиться к значениям суммы:

data = PlayerGroupTime \
    .select(PlayerGroupTime.player_id, fn.SUM(PlayerGroupTime.time).alias('sum_time')) \
    .group_by(PlayerGroupTime.player_id) \
    .order_by(fn.SUM(PlayerGroupTime.time).desc()) \
    .limit(10)

for row in data:
    print(row.sum_time)

print(row.sum_time) - выведит нам нужные значения суммы времени.

→ Ссылка