@Tim245

Как мне сгруппировать весь текст который там есть где одинаковый id?

У меня есть бд где есть продукты, также рядом с каждым продуктом есть id пользователя телеграмм который собственно купил этот товар, но при выводе может быть такая картина, что все товары которые купил 1 юзер не идут по порядку
например вот 5fcd008b8ffec092898818.png как мне нужно изменить мой код чтобы был примерно вот такой вывод ПРИМЕР: Тимур) hevevs Человечек, Йо-Йо , банан И тут номер телефона и так-же с другим юзером ПРИМЕР: Yo-yo , Horddg Апельсин 2шт, Банан Яблоко 2шт, Номер телефона я хочу чтобы всё было по порядку и одинаковые слова и имена не повторялись кроме продуктов вот мой код но он рабочий не не так как я хочу
con = sqlite3.connect("telebot00.db")
            cur = con.cursor()
            count_back = 0
            order = 'Orders'

            back_result = cur.execute(f"""SELECT * FROM {order}""").fetchall()
            for back_elem in back_result:
                user_id_bay = back_result[1]
                count_back = count_back + 1
                back = back + str(count_back) + ') '
                back = back + back_elem[2]
                back = back + ' ,'
                back = back + back_elem[3]
                back = back + ' ,'
                back = back + str(back_elem[4])
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
@PavelMos
Имхо если в скрипте работать с полной базой, т.е. делать SELECT * FROM
то результат можно сразу преобразовывать в pandas в pandas.DataFrame, там есть функция чтения из sql.
Можно группировать по уникальным сочетаниям - user_id+продукт, тут предполагается что данные пользователя у одного user_id всегда одинаковые.
pandas.df1.groupby(['user_id','product']).count()

Или, если через SQL, делать запросы поочерёдном по user_id и уже в них делать groupby и count

SELECT  name, tel, product, COUNT(product)
FROM order
WHERE user_id=....
GROUP BY name, product

В таблице у одного и того же юзера номера телефонов разные, это как-то нужно обрабатывать, потому что при выборке с группировкой будет выдаваться из этого столбца одно из значений, соответствующее группировке, и оно может быть пустым.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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