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

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

№ 5635948084

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

По вопросам рекламы: @anothertechrock
Download Telegram
Ответ на #вопрос24

Однорядные функции одновременно работают только с одной строкой, а многорядные функции – с данными из нескольких строк.

Команда GROUP BY объединяет все записи, имеющие одинаковые значения в определенном поле или любой группе полей.
Статья дня. Как оптимизировать производительность запросов в PostgreSQL

SQL – декларативный язык программирования. Вы объявляете базе данных о своих намерениях, а способ получения результата она выбирает сама. Это решения об использовании индексов, порядке объединения таблиц или проверки условий.

PostgreSQL в стандартном виде не предусматривает вмешательства извне в этот процесс, но показывает последовательность выполнения любого запроса.

Но на практике разработчик часто недоумевает, почему запрос обрабатывается так медленно. Поэтому было решено создать данную статью.

Читать

#sql #читать
Вопрос с собеседования.

В чем разница между COUNT(*) и COUNT(столбец)?

P.S. ответ вечером.

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

При подсчете количества значений столбца COUNT(столбец) не принимает во внимание значение NULL.

Функция COUNT (*) подсчитывает количество строк в таблице, не игнорирует значение NULL, поскольку эта функция оперирует строками, а не столбцами.
Статья дня. Утки, Таиланд и T-SQL… или что может подстерегать программистов при работе с SQL Server?

Если хотите посвятить свою жизнь работе с базами данных, то первое чему нужно научиться… так это стрессоустойчивости. Второе – это взять на вооружение несколько правил при написании запросов на T-SQL, которые многие из начинающих разработчиков не знают или попросту игнорируют, а потом сидят и ломают голову… почему что-то не работает?

Содержание:
1. Data Types
2. *
3. Alias
4. Column order
5. NOT IN vs NULL
6. и т.д.

Читать дальше

#sql #читать
Вопрос с собеседования.

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

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%'

#задача