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

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

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

По вопросам рекламы: @anothertechrock
Download Telegram
Решение к #Задача4:

SELECT c.name
FROM category c
WHERE c.name like '%an%'
UNION
SELECT p.name
FROM product p
WHERE p.name like '%an%'

#задача
#Задача5:

Используй схему данных
отсюда

Получи следующую информацию по таблице цен на товары product_price:

price_min - минимальная цена товара;
price_avg - средняя цена товара;
price_max - максимальная цена товара.

Тестовая БД и схема БД можно скачать - ТУТ

Решение завтра.

#задача
Решение к #Задача5:

SELECT min(price) AS price_min,
avg(price) AS price_avg,
max(price) AS price_max
FROM product_price

#задача
#Задача6:

Используй схему данных
отсюда

Объедини фамилию и имя через пробел из таблицы сотрудников employee. Выведи результат конкатенации в трех столбцах:

lower - строка, преобразованная в нижний регистр;
upper - строка, преобразованная в верхний регистр;
initcap - строка после применения функции initcap.
Отсортируй результат сначала по фамилии, затем по имени.

Тестовая БД и схема БД можно скачать - ТУТ

Решение завтра.

#задача
Решение к #Задача6:

SELECT lower(e.last_name || ' ' || e.first_name) AS lower,
upper(e.last_name || ' ' || e.first_name) AS upper,
initcap(e.last_name || ' ' || e.first_name) AS initcap
FROM employee e
ORDER BY e.last_name, e.first_name

Решение в Postgresql

#задача
#Задача7:

Используй схему данных
отсюда

Найди самые дорогие товары в каждой категории товаров. Выведи столбцы:

category_name - название категории товара;
product_name - название товара;
price - стоимость товара.
Отсортируй результат сначала по названию категории, затем по названию товара.

Помни, что в подзапросах тоже можно выполнять соединение таблиц.

Тестовая БД и схема БД можно скачать - ТУТ

Решение завтра.
#задача
Решение к #Задача7:

SELECT c.name AS category_name,
p.name as product_name,
pp.price
FROM product_price pp
JOIN product p
ON p.product_id = pp.product_id
JOIN category c
ON c.category_id = p.category_id
WHERE pp.price = (SELECT max (ppm.price)
FROM product pm
JOIN product_price ppm
ON ppm.product_id = pm.product_id
WHERE pm.category_id = p.category_id)
ORDER BY c.name, p.name

#задача
#Задача8:

Используй схему данных
отсюда
Тестовую БД и схему БД можно также скачать - ТУТ

Получи информацию о товарах категории товаров с идентификатором 6 не используя конструкцию JOIN:

category_name - название категории товаров;
product_name - название товара;
description - описание товара.
Отсортируй результат по названию товара.

Решение завтра.
#задача
Решение к #Задача8:

SELECT
c.name AS category_name,
p.name as product_name,
p.description
FROM category c,
product p
WHERE p.category_id = c.category_id
AND c.category_id = 1
ORDER BY p.name

#задача
#Задача9:

Используй схему данных
отсюда
Тестовую БД и схему БД можно также скачать - ТУТ

Получи декартово произведение строк таблиц часовых поясов и городов и выведи столбцы:

city_name - название города;
timezone_id_city - поле timezone_id из таблицы city;
timezone_id_timezone - поле timezone_id из таблицы timezone;
time_offset - время относительно UTC.
Отсортируй результат по названию города, затем по коду временной зоны из таблицы timezone.

Решение завтра.
#задача
Решение к #Задача9:

SELECT
c.name AS city_name,
c.timezone_id AS timezone_id_city,
t.timezone_id AS timezone_id_timezone,
t.time_offset
FROM city c,
timezone t
ORDER BY c.name, t.timezone_id

#задача
#Задача10:

Используй схему данных
отсюда

Из таблицы заказов получи единственную строку с информацией:

count_total - общее количество заказов;
count_employee - количество заказов, которые оформили сотрудники магазина.

Тестовая БД и схема БД можно скачать - ТУТ

Решение завтра.
#задача
Решение к #Задача10:

SELECT
count (*) AS count_total,
count (employee_id) AS count_employee
FROM purchase

#задача
Как выглядит запрос, для вывода ВСЕХ значений из таблицы Orders:
Anonymous Quiz
13%
select ALL from Orders;
4%
select % from Orders;
79%
select * from Orders;
4%
select *.Orders from Orders;
#Задача11:

Используй схему данных
отсюда
Тестовую БД и схему БД можно также скачать - ТУТ

К таблице заказов purchase присоедини таблицу товаров заказа purchase_item по идентификатору заказ purchase_id. Выведи следующие данные:

purchase_id - идентификатор заказа;
purchase_date - дата заказа;
store_id - идентификатор магазина;
product_id - идентификатор товара;
total_price - итоговая стоимость, равная количеству единиц товара умноженную на цену за единицу товара.
Отсортируй результат сначала по идентификатору магазина, затем по дате заказа по убыванию.

Решение завтра.
#задача
Решение к #Задача11:

SELECT
p.purchase_id,
p.purchase_date,
p.store_id,
pi.product_id,
pi.count * pi.price as total_price
FROM purchase p
JOIN purchase_item pi
ON pi.purchase_id = p.purchase_id
ORDER BY p.store_id, p.purchase_date DESC

#задача
Какая строковая функция отвечает за склейку строк?
Anonymous Quiz
1%
LOWER()
2%
CHAR()
94%
CONCAT()
3%
REPLACE()
Друзья, напишите что бы вы добавили или исправили в контенте нашего канала?

Все пожелания в комментарии под постом.

Также мы ищем заинтересованного SQL человека, который бы хотел добавлять контент-тесты в наш канал. Все желающие, напишите пожалуйста пару примеров тестов и пришлите их сюда: @aldrson.
#Задача12:

Используй схему данных
отсюда
Тестовую БД и схему БД можно также скачать - ТУТ

Определи длину строки фамилий сотрудников. Выведи два столбца:

last_name - фамилия сотрудника;
length - количество символов в фамилии.
Отсортируй результат сначала по убыванию длины фамилии, затем по фамилии.

Решение завтра.
#задача