SQL задачи
9.99K subscribers
216 photos
176 links
SQL задачи для подготовки к собеседованию.

SQL тесты для проверки знаний.

№ 5635948084

SQL запросы к конкретной Базе данных с решением и разбором

По вопросам рекламы: @anothertechrock
Download Telegram
Задача 23

Напишите запрос, чтобы найти клиентов, которые не относятся к городу Нью-Йорк и при этом имеют оценку не больше 100. Верните customer_id, cust_name, city, grade и salesman_id.

#задача
Ответ к задаче 23

SELECT * FROM customer WHERE NOT (city = 'New York' OR grade>100);

#задача
Задача 24

Напишите запрос, чтобы вывести для каждого продавца имена его клиентов, живущих в том же городе, что и продавец. Если у продавца нет таких клиентов, вместо имени клиента вывести NO MATCH.

Верните salesman_id, name, cust_name, commission. Отсортируйте выборку по второму столбцу (т.е. имени продавца) в порядке убывания.

#задача
Ответ к Задаче 24

SELECT salesman.salesman_id, name, cust_name, commission FROM salesman, customer WHERE salesman.city = customer.city UNION (SELECT salesman_id, name, 'NO MATCH', commission FROM salesman WHERE NOT city = ANY (SELECT city FROM customer)) ORDER BY 2 DESC

#задача
Задача 25

Напишите запрос, чтобы найти клиентов с оценкой 200. Верните customer_id, cust_name, city, grade, salesman_id.

#задача
Ответ к задаче 25

SELECT * FROM customer WHERE grade=200;

#задача
Задача 26

Напишите запрос, чтобы получить данные о клиентах с ID 3007, 3008 и 3009. Верните customer_id, cust_name, city, grade и salesman_id.

#задача
Ответ к Задаче 26

SELECT * FROM customer WHERE customer_id IN (3007, 3008, 3009);

#задача
Задача 27

Напишите запрос, возвращающий число клиентов.

#задача
Ответ к Задаче 27

SELECT COUNT(*) FROM customer;

#задача
Задача 28

Напишите запрос, чтобы выбрать все заказы. Отсортируйте выборку по ord_date в порядке убывания. Верните все поля.

#задача
Ответ к Задаче 28

SELECT * FROM orders ORDER BY ord_date DESC;

#задача
Задача 29

Напишите запрос, чтобы найти все заказы, созданные продавцами из Лондона. Верните ord_no, purch_amt, ord_date, customer_id, salesman_id.

#задача
Ответ к Задаче 29

SELECT * FROM orders WHERE salesman_id IN (SELECT salesman_id FROM salesman WHERE city='London');

#задача
Задача 30

Напишите запрос, чтобы найти продавцов, создавших заказы на максимальные и минимальные суммы по каждой отдельной дате.

Верните salesman_id, name, order_no, строку highest on или lowest on (т.е. наибольшая или наименьшая сумма на [определенное число]), ord_date.

#задача