Sobes.tech
Middle
26

Voorwaarde Er is een database met het volgende datamodel // gebruiker id | voornaam | achternaam | geboortedatum 1 | Ivan | Petrov | [telefoon] | Anna | Petrova | [telefoon] | Anna | Petrova | [telefoon] // aankoop sku | prijs | user_id | datum 1 | 5500 | 1 | [telefoon] | 5700 | 1 | [telefoon] | 4000 | 1 | [telefoon] | 8000 | 2 | [telefoon] | 400 | 2 | [telefoon] // ban_lijst user_id | datum_vanaf 1 | [telefoon] Moet tonen: 1. Toon unieke combinaties van gebruiker en product-ID voor alle aankopen gedaan door gebruikers voordat ze gebanned werden. Sorteer eerst op gebruikersnaam, daarna op SKU 2. Vind gebruikers die aankopen hebben gedaan voor meer dan 5000 rubl. Toon hun namen in het formaat user_id | voornaam | achternaam | totaalbedrag aankopen

Bedrijven waar gevraagd werd
OZONOZON

Antwoord van 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, чтобы получить эти данные и вывести в нужном формате.