homework, pet project DE Dmitry_Medvedev #1
@@ -0,0 +1,49 @@
|
||||
-- Задание 1
|
||||
SELECT id, name, 'active' AS user_status
|
||||
FROM users
|
||||
WHERE is_active = TRUE
|
||||
UNION ALL
|
||||
SELECT id, name, 'inactive' AS user_status
|
||||
FROM users
|
||||
WHERE is_active = FALSE
|
||||
ORDER BY name;
|
||||
|
||||
-- Ответ на вопрос
|
||||
-- 1. Количество строк не изменилось
|
||||
-- 2. Предположу, что подача информации в таком виде более информативней(понятней).
|
||||
|
||||
|
||||
-- Задание 2
|
||||
SELECT id AS order_id, user_id, order_date, 'old' AS period
|
||||
FROM orders
|
||||
WHERE order_date < '2024-01-01'
|
||||
UNION ALL
|
||||
SELECT id AS order_id, user_id, order_date, 'new' AS period
|
||||
FROM orders
|
||||
WHERE order_date >= '2024-01-01'
|
||||
ORDER BY order_date, order_id;
|
||||
|
||||
-- Ответ на вопрос
|
||||
-- 1. В dbeaver в самой левой колонке отображается номерация строк, а снизу общее количество строк который выдал запрос.
|
||||
-- На последней строке с old можно увидеть число в самой левой колонке, это и есть количество строк c old. Далее отнимаем общее кол-во строк от old и получаем кол-во new.
|
||||
-- 2. Тяжело ответить на такой вопрос, не знаю. Если у меня были бы сомнения, я бы у новичка спросил.
|
||||
|
||||
|
||||
-- Задание 3
|
||||
SELECT DISTINCT p.id AS product_id,
|
||||
p.name AS product_name,
|
||||
'ordered' AS product_status
|
||||
FROM products p
|
||||
JOIN order_items oi ON oi.product_id = p.id
|
||||
UNION ALL
|
||||
SELECT DISTINCT p.id AS product_id,
|
||||
p.name AS product_name,
|
||||
'never_ordered' AS product_status
|
||||
FROM products p
|
||||
LEFT JOIN order_items oi ON oi.product_id = p.id
|
||||
WHERE oi.product_id IS NULL
|
||||
ORDER BY product_name;
|
||||
|
||||
-- Ответ на вопрос
|
||||
-- 1. Нам нужно чтобы товар(products) ни разу не заказывали(order_items), получается что мы проверяем есть ли ссылка в каком нибудь заказе на продукт.
|
||||
-- 2. Дает сигнал бизнесу что товар не хотят покупать, возможно на него нужно сделать скидку или прорекламировать товар у блогера какого нибудь.
|
||||
Reference in New Issue
Block a user