Добавить в корзинуПозвонить
Найти в Дзене
Николай Лазарев

SQL интересные задачи

В рамках общения с одной известной компанией решил ряд интересных SQL задач. Скажу сразу, решил не всё. Поэтому предлагаю обсудить варианты в комментариях. Возможно кому-то из аналитиков будет интересно посмотреть, так как с некоторыми из подобных задач сталкиваешься не каждый день. Итак, погнали) 1. Удалить дубли из таблицы Имеется таблица TBL состоящая из одного поля fld Необходимо удалить дублирующие по значению записи из таблицы TBL с помощью запроса SQL 2. Рассчитать сумму в рублях Имеется две таблицы: Необходимо для каждой проводки в таблице CARRY рассчитать соответствующую Сумму в рублях с помощью запроса SQL 3. Анализ по иерархии Имеется таблица Сотрудники (Employee) Необходимо вывести в запросе SQL все сочетания сотрудников, когда оклад руководителя (необязательно непосредственного) меньше чем оклад сотрудника. 4. Построение диапазонов Имеется таблица TBL Необходимо в одном запросе SQL вывести все диапазоны, внутри которых значение поля fld непрерывно (по значению) Оконных ф

В рамках общения с одной известной компанией решил ряд интересных SQL задач.

Скажу сразу, решил не всё. Поэтому предлагаю обсудить варианты в комментариях. Возможно кому-то из аналитиков будет интересно посмотреть, так как с некоторыми из подобных задач сталкиваешься не каждый день.

Итак, погнали)

1. Удалить дубли из таблицы

Имеется таблица TBL состоящая из одного поля fld

-2

Необходимо удалить дублирующие по значению записи из таблицы TBL с помощью запроса SQL

-3

2. Рассчитать сумму в рублях

Имеется две таблицы:

-4

Необходимо для каждой проводки в таблице CARRY рассчитать соответствующую Сумму в рублях с помощью запроса SQL

-5

3. Анализ по иерархии

Имеется таблица Сотрудники (Employee)

-6

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

-7

4. Построение диапазонов

Имеется таблица TBL

-8

Необходимо в одном запросе SQL вывести все диапазоны, внутри которых значение поля fld непрерывно (по значению)

Оконных функций для непрерывных значений пока не делал. Нужно отдельно изучить этот момент). Если у Вас есть решение, прошу подсказать в комментариях.

5. В БД есть таблица Salaries, в которой у каждого сотрудника есть идентификатор, а также столбец для идентификатора отдела.

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

-9
-10

6. Есть таблица с двумя полями Id и Timestamp, где

Id- возрастающая последовательность, каждая вставка новой записи в таблицу приводит к генерации ID(n)=ID(n-1) + 1

Timestamp – временная метка, в стандартном процессе текущее время, при вставке задним числом может принимать любые значения меньше максимума времени всех предыдущих записей

Вставка задним числом – операция вставки записи в таблицу при которой

ID(n) > ID(n-1)

Timestamp(n) < max(timestamp(1):timestamp(n-1))

-11

Написать код SQL, который будет возвращать список всех id, подходящих под определение вставки задним числом

-12

Буду признателен за Ваши комментарии, и варианты решения задачи 4 :)