Middle
Condição Existe uma base de dados com o seguinte esquema de dados // utilizador id | nome | sobrenome | nascimento 1 | Ivan | Petrov | [telefone] | Anna | Petrova | [telefone] | Anna | Petrova | [telefone] // compra sku | preço | user_id | data 1 | 5500 | 1 | [telefone] | 5700 | 1 | [telefone] | 4000 | 1 | [telefone] | 8000 | 2 | [telefone] | 400 | 2 | [telefone] // lista_de_ban user_id | data_de 1 | [telefone] Necessário exibir: 1. Mostrar combinações únicas de utilizador e id do produto para todas as compras feitas por utilizadores antes de serem banidos. Ordenar primeiro pelo nome do utilizador, depois pelo SKU 2. Encontrar utilizadores que fizeram compras por um valor superior a 5000 rublos. Mostrar seus nomes no formato id do utilizador | nome | sobrenome | soma das compras
sobes.tech IA
Resposta da IA
Для решения задачи на 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, чтобы получить эти данные и вывести в нужном формате.