homework, pet project DE Dmitry_Medvedev #1
@@ -0,0 +1,75 @@
|
||||
-- Задание 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) снять с продажи
|
||||
Reference in New Issue
Block a user