Sobes.tech
Middle
28

Warunek Istnieje baza danych z następującym schematem danych // użytkownik id | imię | nazwisko | data_urodzenia 1 | Ivan | Petrov | [telefon] | Anna | Petrova | [telefon] | Anna | Petrova | [telefon] // zakup sku | cena | user_id | data 1 | 5500 | 1 | [telefon] | 5700 | 1 | [telefon] | 4000 | 1 | [telefon] | 8000 | 2 | [telefon] | 400 | 2 | [telefon] // lista_ban user_id | data_od 1 | [telefon] Należy wyświetlić: 1. Wyświetlić unikalne kombinacje użytkownika i id produktu dla wszystkich zakupów dokonanych przez użytkowników przed ich zbanowaniem. Posortować najpierw według imienia użytkownika, potem według SKU 2. Znaleźć użytkowników, którzy dokonali zakupów na kwotę powyżej 5000 rubli. Wyświetlić ich imiona w formacie id użytkownika | imię | nazwisko | suma zakupów

Firmy, w których zadano pytania
OZONOZON

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