744 подписчика

Новые задачи по SQL (2024)

Здравствуйте, коллеги! Как насчёт порции новых задачек по SQL? Приглашаю потренироваться!

Здравствуйте, коллеги!

Как насчёт порции новых задачек по SQL? Приглашаю потренироваться!

За последние две недели наш Телеграм-канал про SQL и базы данных пополнился новыми интересными практическими задачами и вопросами с собеседований! Несколько самых интересных из них я решил разместить здесь!

Благодарю, что продолжаете делиться подобным контентом и активно участвуете в решении опубликованных задач других участников!

ЗАДАЧА 1

Есть два запроса.

Запрос 1:
SELECT o.*,
(SELECT COUNT(*)
FROM ORDER_ITEMS
WHERE ID_ORDER = o.ID) AS COUNT_ITEMS
FROM ORDERS o
WHERE o.ID = 10

Запрос 2:
SELECT o.*,
COALESCE( (SELECT COUNT(*)
FROM ORDER_ITEMS
WHERE ID_ORDER = o.ID), 0) AS COUNT_ITEMS
FROM ORDERS o
WHERE o.ID = 10

В таблице ORDER_ITEMS нет строк со значением 10 в столбце ID_ORDER. Будет ли результат выполнения обеих запросов одинаков? Правильный ответ и процент участников, ответивших правильно, можно посмотреть в нашем Телеграм-канале.

ЗАДАЧА 2

Дан некоторый SQL-запрос:

Select Round (p.Width * p.Length * p.Height) * p.Items_Count  Total_Size1,
            Round
(p.Width * p.Length * p.Height * p.Items_Count)  Total_Size2
  From Positions p

Могут ли быть при каких-либо значениях ширины (столбец Width), длины (Столбец Length) или высоты (столбец Height) разными значения в столбцах Total_Size1 и Total_Size2?

Правильный ответ, пояснение к нему, а также процент участников, ответивших правильно, можно найти в нашем Телеграм-канале.

Тут пауза, немного айти юмора. Внимание, код не повторять на реальной базе!

Здравствуйте, коллеги! Как насчёт порции новых задачек по SQL? Приглашаю потренироваться!-2

ЗАДАЧА 3

Есть таблица, содержащая некоторые суммы начислений, пусть называется TABLE_INVOICES, имеющая, среди прочих, следующие поля:
...
PERIOD NUMBER,
AMOUNT NUMBER,
...

В них хранится информация вида:
PERIOD AMOUNT
202403 100.78
202404 90.12
202405 200.51
...

В столбце PERIOD значение года и месяца.

И ещё есть таблица подготовленных коэффициентов для каждого месяца, пусть называется TABLE_KOEF. Имеет, по аналогии с предыдущей таблицей, тоже столбец PERIOD, содержащий год и месяц.

Содержит информацию вида:
PERIOD KOEF
202402 1
202403 0.5
202404 0.75

В таблице TABLE_KOEF столбец PERIOD является первичным ключом.

И теперь что нужно сделать: написать SQL-запрос, выводящий все записи из таблицы TABLE_INVOICES, и для каждой строки дополнительно, в отдельном столбце, рассчитывающий произведение значения столбца AMOUNT на коэффициент предыдущего месяца из таблицы TABLE_KOEF. В таблице коэффициентов данные не для всех периодов, есть пропуски.

Пример решения и этой задачи есть в нашем Телеграм-канале.

Спасибо, что дочитали до конца! Буду рад лайку, если понравилась статья, или подписке на канал!