Прибавляется лишнее значение в базу данных

У меня есть система статистики в телеграм боте . При любом сообщении в группе - в столбцы со статистикой в базе данных прибавляется +1 в колонку messages - bot_stats(основная статистика бота), users_stats(статистика пользователя в группе), groups(статистика беседы). В users_stats прибавляется +1, а в остальных +2. Почему прибавляется +2, я просмотрел код на повторы занесения значения в бд - их вроде нету?

@bot.message_handler(content_types=['text'])
def user_msg(message):
    group_type = message.chat.id
    group_id = message.chat.id
    user_id = message.chat.id
    user_nickname = message.from_user.username
    if message.text == '8714290712094521':
        bot.send_message(message.chat.id, text='1')
    elif group_type > 0:
        conn = sqlite3.connect('dba.db', check_same_thread=False)
        cur = conn.cursor()

        cur.execute('UPDATE bot_stats SET messages = messages+1 WHERE id=1')
        conn.commit()

        cur.close()
        conn.close()
    elif group_type < 0:
        conn = sqlite3.connect('dba.db', check_same_thread=False)
        cur = conn.cursor()
        cur.execute('SELECT group_id FROM groups WHERE group_id = ("%s")' % group_id)
        groups = cur.fetchall()
        if len(groups) == 0:
            cur.execute('UPDATE bot_stats set groups = groups+1 WHERE id=1')
            cur.execute('INSERT INTO groups (group_id) VALUES ("%s")' % group_id)
            conn.commit()
            bot.send_message(message.chat.id, text='Запись создана')
        else:
            cur.execute('UPDATE groups set messages = messages+1 WHERE group_id=("%s")' % group_id)
            conn.commit()
        if message.text == '3428905140234951':
            bot.send_message(message.chat.id, text='1')
        else:
            cur.execute('SELECT group_id, user_id FROM users_stats WHERE (group_id, user_id) = ("%s", "%s")' % (group_id, user_id))
            user_stats = cur.fetchall()
            conn.commit()
            if len(user_stats) == 0:
                cur.execute('INSERT INTO users_stats (group_id, user_id, nickname) VALUES ("%s", "%s", "%s")' % (group_id, user_id, user_nickname))
                cur.execute('UPDATE users_stats SET messages = messages+1 WHERE (group_id, user_id) = ("%s", "%s")' % (group_id, user_id))
                conn.commit()
            else:
                cur.execute('UPDATE users_stats SET messages = messages+1 WHERE (group_id, user_id) = ("%s", "%s")' % (group_id, user_id))
                conn.commit()
            cur.execute('UPDATE bot_stats SET messages = messages+1 WHERE id=1')
            cur.execute('UPDATE groups SET messages = messages+1 WHERE group_id=?', (group_id,))
            conn.commit()
        cur.close()
        conn.close()

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

Автор решения: mrBars1k
elif group_type > 0:

    cur.execute('UPDATE bot_stats SET messages = messages+1 WHERE id=1')
    conn.commit()

elif group_type < 0:

    cur.execute('UPDATE groups set messages = messages+1 WHERE group_id=("%s")' % group_id)
    conn.commit()

Скорее всего, в этих строчках возникает ошибка.

Когда group_type равно 1, столбцы messages в таблицах bot_stats и groups обновляются. При любом сообщении в группе с group_type больше 0, будет прибавляться +2 к столбцу messages в базе данных (по одному для bot_stats и groups).

→ Ссылка