Files
homework/vberetar/postgresql/sql_union.sql
T
2026-05-22 01:09:28 +03:00

50 lines
2.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Задание 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. Дает сигнал бизнесу что товар не хотят покупать, возможно на него нужно сделать скидку или прорекламировать товар у блогера какого нибудь.