Sobes.tech
Middle
36

Nosacījums Ir datu bāze ar šādu datu shēmu // lietotājs id | vārds | uzvārds | dzimšanas datums 1 | Ivan | Petrov | [telefons] | Anna | Petrova | [telefons] | Anna | Petrova | [telefons] // pirkums sku | cena | user_id | datums 1 | 5500 | 1 | [telefons] | 5700 | 1 | [telefons] | 4000 | 1 | [telefons] | 8000 | 2 | [telefons] | 400 | 2 | [telefons] // bloķēšanas_saraksts user_id | sākuma_datums 1 | [telefons] Nepieciešams parādīt: 1. Unikālas lietotāja un produkta ID kombinācijas visiem pirkumiem, ko veica lietotāji pirms viņu bloķēšanas. Sakārtot vispirms pēc lietotāja vārda, pēc tam pēc SKU 2. Atrodiet lietotājus, kuri ir veikuši pirkumus par summu vairāk nekā 5000 rubļu. Parādīt viņu vārdus šādā formātā: user_id | vārds | uzvārds | pirkumu summa

Uzņēmumi, kur jautāja
OZONOZON

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