@Corn385

Как обработать сразу несколько строк из запроса бд?

По сути вопрос простой, но мне в голову ничего уже не лезет.

async def todays(message):
    jbs = cur.execute(f'SELECT game,win FROM wins WHERE id = ?', (message.from_user.id,)).fetchall()

после запроса, в jbs может выйти такое: [(109, 89)] или [(109, 89), (999, 990)] и тд. Как вы могли понять, на выходе будет выдавать столько строк, сколько раз айди пользователя есть в колонке id бд. В зависимости от запроса, мне нужно складывать первые и вторые значения каждого списка. По типу 109+999 и 89+990.
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
SELECT sum(game), sum(win) FROM wins WHERE id = ?
И будет всегда одна строка с посчитанной суммой.
То есть надо использовать не fetchall, а fetchone()

А в общем случае обычная работа с коллекцией
sum_game=0
sum_win=0
for row in jbs:
    sum_game +=row[0]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы