Sobes.tech
Middle
29

Condition Il existe une base de données avec le schéma de données suivant // utilisateur id | prénom | nom de famille | naissance 1 | Ivan | Petrov | [téléphone] | Anna | Petrova | [téléphone] | Anna | Petrova | [téléphone] // achat sku | prix | user_id | date 1 | 5500 | 1 | [téléphone] | 5700 | 1 | [téléphone] | 4000 | 1 | [téléphone] | 8000 | 2 | [téléphone] | 400 | 2 | [téléphone] // liste_de_ban user_id | date_debut 1 | [téléphone] Il faut afficher: 1. Afficher les combinaisons uniques d'utilisateur et d'ID de produit pour tous les achats effectués par des utilisateurs avant qu'ils ne soient bannis. Trier d'abord par nom d'utilisateur, puis par SKU 2. Trouver les utilisateurs qui ont effectué des achats pour un montant supérieur à 5000 roubles. Afficher leurs noms au format id utilisateur | prénom | nom de famille | somme des achats

Entreprises à qui on a demandé
OZONOZON

Réponse de l'IA

sobes.tech IA

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