75 lines
1.5 KiB
SQL
75 lines
1.5 KiB
SQL
-- Задание 1
|
|
SELECT
|
|
id,
|
|
name,
|
|
'active' AS user_status
|
|
FROM
|
|
mnoskov.users
|
|
WHERE
|
|
is_active = TRUE
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
id,
|
|
name,
|
|
'inactive' AS user_status
|
|
FROM
|
|
mnoskov.users
|
|
WHERE
|
|
is_active = FALSE
|
|
ORDER BY name;
|
|
-- Если написать просто UNION, то в данном задании ничего не изменится
|
|
|
|
|
|
-- Задание 2
|
|
SELECT
|
|
id AS order_id,
|
|
user_id,
|
|
order_date,
|
|
'old' AS period
|
|
FROM
|
|
mnoskov.orders
|
|
WHERE
|
|
order_date < '2025-02-01'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
id AS order_id,
|
|
user_id,
|
|
order_date,
|
|
'new' AS period
|
|
FROM
|
|
mnoskov.orders
|
|
WHERE
|
|
order_date >= '2025-02-01'
|
|
ORDER BY
|
|
order_date, order_id;
|
|
-- По колонке period я пойму старый(old) заказ или новый(new)
|
|
-- Я не могу ответить, потому что CASE WHEN ещё не проходили
|
|
|
|
|
|
-- Задание 3
|
|
SELECT DISTINCT
|
|
oi.product_id,
|
|
p.name AS product_name,
|
|
'ordered' AS product_status
|
|
FROM
|
|
mnoskov.products p
|
|
JOIN
|
|
mnoskov.order_items oi ON p.id = oi.product_id
|
|
|
|
UNION ALL
|
|
|
|
SELECT DISTINCT
|
|
p.id AS product_id,
|
|
p.name AS product_name,
|
|
'never_ordered' AS product_status
|
|
FROM
|
|
mnoskov.products p
|
|
LEFT JOIN
|
|
mnoskov.order_items oi ON p.id = oi.product_id
|
|
WHERE oi.product_id = NULL;
|
|
-- Проверка IS NULL по полю из order_items, потому что это права таблица, и null будут добавляться в неё
|
|
-- 1) Понизить цену товара 2) лучше прорекламировать 3) снять с продажи |