diff --git a/homework-2/groupby.sql b/homework-2/groupby.sql index bc77259e5..5b8b471a8 100644 --- a/homework-2/groupby.sql +++ b/homework-2/groupby.sql @@ -1,20 +1,51 @@ -- Напишите запросы, которые выводят следующую информацию: -- 1. заказы, отправленные в города, заканчивающиеся на 'burg'. Вывести без повторений две колонки (город, страна) (см. таблица orders, колонки ship_city, ship_country) - +SELECT DISTINCT ship_city, ship_country +FROM orders +WHERE ship_city LIKE '%burg'; -- 2. из таблицы orders идентификатор заказа, идентификатор заказчика, вес и страну отгрузки. Заказ отгружен в страны, начинающиеся на 'P'. Результат отсортирован по весу (по убыванию). Вывести первые 10 записей. - +SELECT order_id, customer_id, weight, ship_country +FROM orders +WHERE ship_country LIKE 'P%' +ORDER BY weight DESC +LIMIT 10; -- 3. имя, фамилию и телефон сотрудников, у которых в данных отсутствует регион (см таблицу employees) - +SELECT first_name, last_name, phone +FROM employees +WHERE region IS NULL; -- 4. количество поставщиков (suppliers) в каждой из стран. Результат отсортировать по убыванию количества поставщиков в стране - +SELECT country, COUNT(*) AS supplier_count +FROM suppliers +GROUP BY country +ORDER BY supplier_count DESC; -- 5. суммарный вес заказов (в которых известен регион) по странам, но вывести только те результаты, где суммарный вес на страну больше 2750. Отсортировать по убыванию суммарного веса (см таблицу orders, колонки ship_region, ship_country, freight) - +SELECT ship_country, SUM(weight) AS total_weight +FROM orders +WHERE ship_region IS NOT NULL +GROUP BY ship_country +HAVING total_weight > 2750 +ORDER BY total_weight DESC; -- 6. страны, в которых зарегистрированы и заказчики (customers) и поставщики (suppliers) и работники (employees). - +SELECT country +FROM customers +INTERSECT +SELECT country +FROM suppliers +INTERSECT +SELECT country +FROM employees; -- 7. страны, в которых зарегистрированы и заказчики (customers) и поставщики (suppliers), но не зарегистрированы работники (employees). +SELECT country +FROM customers +INTERSECT +SELECT country +FROM suppliers +EXCEPT +SELECT country +FROM employees;