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

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

№ 5635948084

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

По вопросам рекламы: @anothertechrock
Download Telegram
Вопрос с собеседования.

Перечислите основные символьные функции.

P.S. ответ через час.

#вопрос26 #собес
Ответ на #вопрос26

1) LOWER. Возвращает строку в нижнем регистре
2) UPPER. Возвращает строку в верхнем регистре
3) INITCAP. Переводит первую букву строки в верхний регистр, оставляя всю остальную строку в нижнем.
4) CONCAT. Используется для конкатениции (объединения) двух строк.
5) LENGTH. Используется для получения длины строки.
#Задача1:

Для каждой категории товаров получи пример товара.

Выведи поля:
name - название категории;
product_example - название примера продукта в категории. Возьми первый по алфавиту товар в категории.
Отсортируй результат по названию категории.

Решение завтра.
#задача
Друзья, мы начинаем SQL марафон - серию задач по SQL.

Будет 15 задач.
1 задача в неделю.
Свои решения присылайте в комментариях к задачам. По итогу 15 задач, каждый увидит, сколько он смог решить правильно сам.

Мы создали для вас небольшой снипет(отрывок) кода, чтобы создать тестовую базу данных с которой и будем дальше работать.

Задача 1 сверху над этим постом.

SQL код создания базы лежит - ТУТ (проверяйте его, там просто тестовая база с парой данных)

Компайлер для SQL мы использовали вот ЭТОТ.

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

Для каждой категории товаров получи пример товара.

SELECT c.name,
(SELECT p.name
FROM product p
WHERE p.category_id = c.category_id
ORDER BY p.name
LIMIT 1
) AS product_example
FROM category c
ORDER BY c.name

#задача
Что по умолчанию имеет более высокий приоритет! или NOT?
Anonymous Quiz
23%
!
28%
NOT
38%
Оба имеют одинаковый приоритет
11%
Узнать ответ
#Задача2

Сконкатенируй ФИО из таблицы сотрудников employee.

Выведи один столбец full_name в формате 'Фамилия Имя Отчество;'

Отсортируй результат по full_name.

Не забудь точку с запятой в конце строки.

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

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

SELECT concat(
e.last_name, ' ',
e.first_name, ' ',
e.middle_name, ';'
) AS full_name
FROM employee e
ORDER BY full_name

#задача
#Задача3:

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

Получи информацию о самом дорогом продукте, который когда-либо купили (purchase_item).

Выведи следующие поля:

product_name - название продукта;
count - количество единиц товара;
price - цена за единицу товара.

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

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

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

SELECT p.name AS product_name,
pi.count,
pi.price
FROM purchase_item pi
JOIN product p
ON p.product_id = pi.product_id
WHERE pi.price = (SELECT max(pim.price)
FROM purchase_item pim)

#задача
#Задача4:

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

Давай представим, что мы делаем поиск по названию товаров и категорий товаров.

Найди все товары и категории товаров, в названии которых встречается подстрока 'an' без учета регистра (name like '%an%'). В результате выведи один столбец:

name - название товара или категории товаров.
Сортировать строки результата не нужно.

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

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

#задача
Решение к #Задача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 - стоимость товара.
Отсортируй результат сначала по названию категории, затем по названию товара.

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

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

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