Sobes.tech
Middle
33

Шарт Има база данни с следната схема на данни // потребител id | име | фамилия | дата на раждане 1 | Ivan | Petrov | [телефон] | Anna | Petrova | [телефон] | Anna | Petrova | [телефон] // покупка sku | цена | user_id | дата 1 | 5500 | 1 | [телефон] | 5700 | 1 | [телефон] | 4000 | 1 | [телефон] | 8000 | 2 | [телефон] | 400 | 2 | [телефон] // списък_блокирани user_id | дата_от 1 | [телефон] Трябва да се покаже: 1. Уникални комбинации от потребител и id на продукта за всички покупки, направени от потребители преди да бъдат забранени. Подредете първо по име на потребителя, след това по SKU 2. Намерете потребители, които са направили покупки на стойност повече от 5000 рубли. Покажете имената им във формат user_id | име | фамилия | сума на покупките

Ширкатҳо дар куҷо пурсиданд
OZONOZON

Ҷавоб аз AI

sobes.tech AI

Для решения задачи на SQL:

  1. Вывести уникальные комбинации пользователя и id товара для покупок, совершённых до бана, отсортировать по имени пользователя и SKU:
SELECT DISTINCT u.firstname, u.lastname, p.sku
FROM purchase p
JOIN user u ON p.user_id = u.id
LEFT JOIN ban_list b ON p.user_id = b.user_id
WHERE b.date_from IS NULL OR p.date < b.date_from
ORDER BY u.firstname, p.sku;
  1. Найти пользователей, сумма покупок которых больше 5000, и вывести id, имя, фамилию и сумму:
SELECT u.id, u.firstname, u.lastname, SUM(p.price) AS total_spent
FROM user u
JOIN purchase p ON u.id = p.user_id
GROUP BY u.id, u.firstname, u.lastname
HAVING SUM(p.price) > 5000;

Если нужно на Python, то можно использовать ORM или raw SQL-запросы с библиотекой, например, psycopg2 или SQLAlchemy, чтобы получить эти данные и вывести в нужном формате.