Middle
45
Podmienka Existuje databáza s nasledujúcim schématom dát // používateľ id | meno | priezvisko | dátum narodenia 1 | Ivan | Petrov | [telefón] | Anna | Petrova | [telefón] | Anna | Petrova | [telefón] // nákup sku | cena | user_id | dátum 1 | 5500 | 1 | [telefón] | 5700 | 1 | [telefón] | 4000 | 1 | [telefón] | 8000 | 2 | [telefón] | 400 | 2 | [telefón] // zoznam_banov user_id | dátum_od 1 | [telefón] Je potrebné zobraziť: 1. Jedinečné kombinácie používateľa a id produktu pre všetky nákupy, ktoré vykonali používatelia predtým, než boli zabanovaní. Triediť najskôr podľa mena používateľa, potom podľa SKU 2. Nájsť používateľov, ktorí vykonali nákupy za viac ako 5000 rubľov. Zobraziť ich mená vo formáte user_id | meno | priezvisko | súčet nákupov
Spoločnosti boli požiadané
Odpoveď od AI
sobes.tech AI
Для решения задачи на SQL:
- Вывести уникальные комбинации пользователя и 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;
- Найти пользователей, сумма покупок которых больше 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, чтобы получить эти данные и вывести в нужном формате.