-- Задание 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. Дает сигнал бизнесу что товар не хотят покупать, возможно на него нужно сделать скидку или прорекламировать товар у блогера какого нибудь.