commission pct что это

Основные функции SQL | NVL, NVL2, DECODE, COALESCE, NULLIF, LNNVL и NANVL

В этой статье мы обсудим некоторые мощные общие функции SQL, а именно: NVL, NVL2, DECODE, COALESCE, NULLIF, LNNVL и NANVL.

Эти функции работают с любым типом данных и относятся к использованию нулевых значений в списке выражений. Все они являются однорядными функциями, т.е. предоставляют один результат на строку.

expr1 — это исходное значение или выражение, которое может содержать ноль.
expr2 — это целевое значение для преобразования нуля.

Выход :

Синтаксис —

expr1 — это исходное значение или выражение, которое может содержать ноль
expr2 — это значение, возвращаемое, если expr1 не является нулевым
expr3 — это значение, возвращаемое, если expr1 равен нулю

Выход :

Синтаксис —

Выход :

Синтаксис —

Выход :

Синтаксис —

Выход :

Синтаксис —

Выход :

Теперь вышеприведенные примеры не учитывают те сотрудники, которые вообще не имеют комиссионных.
Чтобы включить их, мы используем LNNVL ()

Выход :

Синтаксис —

Рассмотрим следующую таблицу с именем nanvl_demo:

Выход :

Ссылка : Введение в Oracle9i SQL (том-1, книга)

Источник

Основы программирования в СУБД Oracle. SQL+PL/SQL.

Посоветуйте книгу друзьям! Друзьям – скидка 10%, вам – рубли

Использование вычисляемых столбцов

В предложении SELECT, кроме списка столбцов таблиц участвующих в запросе, могут присутствовать вычисляемые столбцы, которые представляют собой выражения, состоящие из имен столбцов, констант, функций и арифметических операций. Значению вычисляемого поля можно присвоить имя. Для этого используется следующая конструкция:

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

Сначала выполняются операции умножения и деления, которые имеют одинаковый приоритет, потом сложения и вычитания, которые также относительно друг друга имеют одинаковый приоритет.

Если операции в выражении имеют одинаковый приоритет, то их выполнение производится слева направо.

Рассмотрим примеры использования вычисляемых столбцов. Если значение столбца commission_pct в таблице Employees обозначает надбавку к зарплате как часть заработной платы, то общая зарплата с учетом комиссионных может быть вычислена с использованием выражения:

SALARY * (1 + COMMISSION_pct) As Total_Salary

Следует иметь в виду то, что у некоторых сотрудников значение столбца commission_pct равно NULL. А если один из элементов выражения равен NULL, то и все выражение будет иметь значение NULL. Данную проблему можно решить, используя специальные функции, которые мы рассмотрим позже.

Пример 2.31. Вывести данные о размере комиссионных для сотрудников, которые получают комиссионные

SELECT employee_id, first_name, last_name, department_id,

commission_pct*salary as commission

WHERE commission_pct IS NOT NULL;

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

Пример 2.32. Вывести данные о продажах товаров, в которых сумма одной покупки превышала 300 000

SELECT product_id, order_id, item_id, quantity, unit_price,

WHERE quantity*unit_price> 300000;

Использование псевдостолбца ROWNUM

Значение псевдостолбца ROWNUM равно номеру записи, возвращаемой запросом. Используя этот столбец, можно ограничить число строк в результате выполнения запроса.

Пример 2.33. Вывести пять строк с данными о продажах товаров, в которых сумма одной покупки превышала 300 000

SELECT product_id, order_id, item_id, quantity, unit_price,

WHERE quantity*unit_price> 300000

AND ROWNUM 1, будет пуст. Это происходит потому, что первая строка, возвращаемая запросом, имеет значение ROWNUM = 1, это значение не удовлетворяет условию ROWNUM = N и поэтому не попадает в результат выполнения запроса. После этого каждая следующая строка будет иметь значение ROWNUM = 1 и также не будет удовлетворять условию ROWNUM = N.

Оператор конкатенации

Оператор конкатенации (слияния) записывается двумя вертикальными чертами (||) и используются для того, чтобы объединить при выводе данных два или несколько столбцов или литералов в один столбец.

Оператор конкатенации можно применять для строк, чисел и дат. Даты и числа при слиянии конвертируются в строковые значения. При слиянии строки значения со значением типа NULL Oracle возвращает строковое значение.

Пример 2.34. Вывести данные о заказах, оформленных сотрудником 165

SELECT ′ Order ′ ||order_id|| ′ from ′ ||order_date

|| ′ is ′ ||status AS Order_Statys

WHERE salesman_id =165;

Сортировка

Результат выполнения оператора SELECT может быть упорядочен по значению одного или нескольких столбцов. Для этого служит предложение ORDER BY, которое имеет следующий синтаксис:

Пример 2.35. Вывести данные о сотрудниках, упорядочив их в порядке убывания зарплаты

SELECT employee_id, first_name, last_name, department_id, salary

ORDER BY salary DESC;

Отсортировать результат можно по значениям нескольких столбцов. Сначала строки упорядочиваются по значению первого столбца. Строки, имеющие одинаковые значения первого столбца, упорядочиваются по значению второго столбца, и т. д. Для каждого столбца можно указать свой порядок сортировки.

Пример 2.36. Вывести данные о сотрудниках, упорядочив их в порядке возрастания номеров отделов, в которых они работают. Данные о сотрудниках, которые работают в одном отделе, упорядочить в порядке убывания зарплаты

SELECT employee_id, first_name, last_name, department_id, salary

ORDER BY department_id, salary DESC;

В предложении ORDER BY можно использовать псевдонимы столбцов.

Пример 2.37. Вывести данные о сотрудниках, которые получают комиссионные, упорядочив их в порядке убывания суммы комиссионных

SELECT employee_id, first_name, last_name, department_id,

commission_pct*salary as commission

WHERE commission_pct IS NOT NULL

ORDER BY commission DESC;

Можно сортировать строки по столбцам, не указанным в предложении SELECT.

Пример 2.38. Вывести данные о сотрудниках, которые работают в отделе 80, упорядочив их в порядке убывания рейтинга

SELECT employee_id, first_name, last_name, department_id, salary

WHERE department_id = 80

Следует иметь в виду, что запрос с группировкой, содержащий условие ROWNUM ≤ N, не вернет первые N строк из всего набора записей, удовлетворяющих условиям запроса отсортированные по значениям определенного столбца. Это происходит потому, что сначала проверяется условие ROWNUM ≤ N, затем осуществляется сортировка. Это может стать причиной трудно обнаруживаемых ошибок. Для иллюстрации этого утверждения рассмотрим следующий пример.

Пример 2.39. Вывести пять строк с данными о продажах товаров с максимальными суммами (запрос содержит ошибку)

SELECT product_id, order_id, item_id, quantity, unit_price,

WHERE ROWNUM 9000 и работают в одном из отделов: 50, 80, 100.

4. Вывести содержимое столбца street_address в таблице Locations тех строк, у которых значение этого столбца начинается не с цифры.

5. Вывести first_name, last_name, job_id и суммарную зарплату за год в следующем виде:

Читайте также:  Что значит строить мужчину

Michael Hartstein занимает должность MK_MAN, и зарплата за год составляет 156 000.

6. Вывести значения столбцов employee_id, department_id, first_name, last_name, department_id, job_id, salary, bonus для сотрудников, у которых зарплата salary 0;

Типы даты и времени

Эти типы используются для работы с данными, представляющими собой даты с учетом времени. Тип Date является основным при работе с данными, представляющими собой дату и время. При использовании этого типа данные хранятся в формате DD-MM-YY HH: MI: SS, где:

DD – двузначное значение дня;

MM – двузначный номер месяца;

YY – две последние цифры года;

HH, MI, SS – двузначные значения часа, минуты и секунды.

При выводе значений данного типа по умолчанию отображается дата. Для получения текущей даты в формате Date используется функция SYSDATE.

Пример 3.19. Вывод текущей даты в формате по умолчанию

Для отображения и обработки полного значения, содержащего время, используются специальные функции.

Пример 3.20. Вывод текущей даты с использованием функции TO_CHAR

SELECT TO_CHAR (SYSDATE, ′DD MONTH YYYY, HH24:MI: SS′)

К типам данных, используемых для представления значений даты и времени, также относятся:

– TIMESTAMP – аналогичен типу Date, но время хранится с точностью до миллиардной доли секунды. Для получения текущей даты в этом формате используется функция LOCALTIMESTAMP;

– TIMESTAMP WITH TIME ZONE – хранит вместе со значением даты и времени информацию о часовом поясе. Часовым поясом называется смещение от времени по Гринвичу. Для получения текущей даты в этом формате используется функция SYSTIMESTAMP.

Пример 3.21. Использование функция LOCALTIMESTAMP

Пример 3.22. Использование функция SYSTIMESTAMP

Функции для работы с данными, имеющими тип даты и времени

Для обработки данных, имеющих тип Date, можно использовать функции, представленные в таблице 3.4.

Таблица 3.4. Функции для работы с данными, имеющими тип даты и времени

Значения, имеющие этот тип, могут участвовать в арифметических операциях с некоторыми ограничениями. Например, разница меду двумя датами равна количеству дней, прошедших между этими датами, но нельзя непосредственно складывать значения, имеющие тип Date.

Прибавление целого значения n к значению типа Date эквивалентно прибавлению n дней к дате. Прибавление значения n/24 к значению типа Date эквивалентно прибавлению n часов к дате.

Если в выражении участвует строка, содержащая значение даты, то ее рекомендуется преобразовать к значению типа Date, используя функцию TO_DATE ().

Рассмотрим примеры, в которых значения, имеющие тип Date, участвуют в арифметических выражениях.

Пример 3.23. Вывод значения текущей даты, увеличенного на 45 дней

SELECT SYSDATE, SYSDATE +45

Пример 3.24. Вывод значения текущей даты и времени, увеличенного на два часа

SELECT TO_CHAR (SYSDATE, ′DD MONTH YYYY, HH24:MI: SS′)

TO_CHAR (SYSDATE +2/24, ′DD MONTH YYYY, HH24:MI: SS′)

Пример 3.25. Определить количество дней, прошедших между датой приема на работу и сегодняшним днем

Следует обратить внимание на то, что этот запрос возвращает дробное значение, так как значение, возвращаемое функцией SYSDATE, содержит текущее время, которое трактуется как часть суток: например, 12 часов отобразятся в виде значения 0,5.

Пример 3.26. Определить количество недель, прошедших между датой приема на работу и сегодняшним днем

SELECT employee_id, TRUNC ((SYSDATE – hire_date) /7)

Для определения интервалов между двумя датами в месяцах следует использовать специальную функцию MONTHS_BETWEEN.

Пример 3.27. Вывести данные о сотрудниках и количестве месяцев, прошедших между датой приема на работу и сегодняшним днем

SELECT employee_id, first_name, last_name,

TRUNC (MONTHS_BETWEEN (SYSDATE, hire_date)) AS MONTHS

Пример 3.28. Вывести данные о сотрудниках, которые проработали более 30 лет

SELECT employee_id, first_name, last_name, salary,

WHERE MONTHS_BETWEEN (SYSDATE, hire_date)> 360;

Функция NEXT_DAY (x, день недели) возвращает следующую ближайшую дату, соответствующую определенному дню недели: например, среда.

Пример 3.29. Использование функции NEXT_DAY

SELECT SYSDATE AS «Сегодня», EXT_DAY (SYSDATE, ′Tuesday′)

Функция LAST_DAY (x) возвращает дату, соответствующую последнему дню месяца, которому принадлежит x.

Пример 3.30. Использование функции LAST_DAY

SELECT SYSDATE, LAST_DAY (SYSDATE)

Функция ROUND (x, <параметр>) округляет дату x, если параметр отсутствует, то до начала ближайших суток; если <параметр>= MM/ MON / MONTH – то до начала ближайшего месяца; если параметр = YY / YYYY /YEAR – то до начала ближайшего года.

Пример 3.31. Использование функции ROUND c параметром MM

SELECT ROUND (TO_DATE (′12.05.2018′, ′DD.MM.YYYY′),′MM′)

As ′′ ROUND MONTCH 12.05.2018 ′′,

ROUND (TO_DATE (′20.05.2018′, ′DD.MM.YYYY′),′MM′)

As ′′ ROUND MONTCH 20.05.2018 ′′

Пример 3.32. Использование функции ROUND c параметром YYYY

SELECT ROUND (TO_DATE (′12.05.2018′, ′DD.MM.YYYY′),′YYYY′)

As ′′ ROUND YEAR 12.05.2018 ′′,

As ′′ ROUND YEAR 12.07.2018 ′′

Функция TRUNC (x, <параметр>) отличается от ROUND тем, что возвращает начало текущих суток, начало текущего месяца, начало текущего года соответственно.

Пример 3.33. Использование функции TRUNC c параметром MM.

SELECT TRUNC (TO_DATE (′12.05.2018′, ′D.MM.YYYY′),′MM′)

As ′′ TRUNC MONTCH 12.05.2018 ′′,

TRUNC (TO_DATE (′20.05.2018′, ′D.MM.YYYY′),′MM′)

As ′′ TRUNC MONTCH 20.05.2018 ′′

Функция EXTRACT возвращает значение заданного поля даты-времени из значения, имеющего тип date. Синтаксис:

Таблица 3.5. Часть даты, возвращаемая функцией EXTRACT

Пример 3.34. Вывести данные о сотрудниках, которые были приняты на работу в 1999 году

SELECT employee_id, first_name, last_name, department_id, hire_date

WHERE EXTRACT (YEAR FROM hire_date) =1999;

Источник

SQLite подзапросы

Вступление

Выход:

Подзапросы: Руководство

Есть несколько рекомендаций, которые следует учитывать при использовании подзапросов:
— Подзапрос должен быть заключен в скобки.
— Используйте однострочные операторы с однорядными подзапросами и используйте многострочные операторы с многострочными подзапросами.
— Если подзапрос (внутренний запрос) возвращает нулевое значение для внешнего запроса, внешний запрос не будет возвращать никаких строк при использовании определенных операторов сравнения в предложении WHERE.

Типы подзапросов

SQLite подзапрос как скалярный операнд

Пример:

Выход:

Подзапросы SQLite: использование сравнений

Подзапрос может использоваться до или после любого из операторов сравнения. Подзапрос может возвращать не более одного значения. Значение может быть результатом арифметического выражения или функции столбца. Затем SQL сравнивает значение, полученное в подзапросе, со значением на другой стороне оператора сравнения. Вы можете использовать следующие операторы сравнения:

оператор Описание
знак равно Тест на равенство.
== Тест на равенство.
> Лучше чем.
= Больше чем равно.
Тест на неравенство.
знак равно Тест на неравенство.
Читайте также:  при каком царе было кровавое воскресенье

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

Выход :

Подзапросы SQLite с оператором IN

Синтаксис:

Пример: подзапрос SQLite, оператор IN

Следующий запрос выбирает тех сотрудников, которые работают в местоположении 1700. Подзапрос находит идентификатор отдела в расположении 1700, а затем основной запрос выбирает сотрудников, которые работают в любом из этих отделов.

Пример таблицы: сотрудники

Выход:

Подзапросы SQLite с оператором NOT IN

Синтаксис:

Пример: подзапрос SQLite, оператор NOT IN

В следующем запросе выбираются те сотрудники, которые не работают под руководством менеджера, чей идентификатор находится в диапазоне от 100 до 200. Подзапрос находит идентификатор отдела, который находится под менеджером, чей идентификатор находится в диапазоне от 100 до 200, а затем основной запрос выбирает сотрудников, которые не работайте ни в одном из этих отделов.

Пример таблицы: сотрудники

Пример таблицы: отделы

Выход:

Подзапросы SQLite с оператором EXISTS

Синтаксис:

Пример: подзапросы SQLite с EXISTS

Из приведенных ниже таблиц (сотрудники) найдите сотрудников (employee_id, first_name, last_name, job_id, Department_id), у которых есть хотя бы один человек, подотчетный им.

Пример таблицы: таблица сотрудников

Выход:

SQLite коррелированные подзапросы

Коррелированный синтаксис подзапроса:

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

таблица сотрудников:

Выход:

Пример 2: коррелированные подзапросы SQLite

Из таблиц employee и job_history найдите сведения о тех сотрудниках, которые хотя бы раз поменяли работу.

Пример таблицы: таблица сотрудников:

Пример таблицы: таблица job_history:

выход:

Подзапросы SQLite в предложении FROM

Подзапросы работают в предложении оператора SELECT FROM. Синтаксис:

Каждая таблица в предложении FROM должна иметь имя, поэтому предложение имени [AS] является обязательным. Любые столбцы в списке выбора подзапроса должны иметь уникальные имена.

Пример: подзапросы SQLite в предложении FROM

У нас есть следующая таблица tb1.

Давайте вставим некоторые значения в таблицу tb1.

Вот как использовать подзапрос в предложении FROM, используя таблицу примеров (tb1):

Предыдущая: ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ
Далее: Триггеры

Источник

SQL. Занимательные задачки

Категории

Свежие записи

Наши услуги

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

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

SQL (ˈɛsˈkjuˈɛl; англ. structured query language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных. Подробнее…

Будем использовть всем известную схему HR в Oracle с ее таблицами ( Подробнее ):


Отмечу что мы будем рассматривать только задачи на SELECT. Тут нет задач на DML и DDL.

Задачи

Restricting and Sorting Data

Таблица Employees. Получить список с информацией обо всех сотрудниках
Решение

Таблица Employees. Получить список всех сотрудников с именем ‘David’
Решение

Таблица Employees. Получить список всех сотрудников с job_id равным ‘IT_PROG’
Решение

Таблица Employees. Получить список всех сотрудников из 50го отдела (department_id) с зарплатой(salary), большей 4000
Решение

Таблица Employees. Получить список всех сотрудников из 20го и из 30го отдела (department_id)
Решение

Таблица Employees. Получить список всех сотрудников у которых последняя буква в имени равна ‘a’
Решение

Таблица Employees. Получить список всех сотрудников из 50го и из 80го отдела (department_id) у которых есть бонус (значение в колонке commission_pct не пустое)
Решение

Таблица Employees. Получить список всех сотрудников у которых в имени содержатся минимум 2 буквы ‘n’
Решение

Таблица Employees. Получить список всех сотрудников у которых длина имени больше 4 букв
Решение

Таблица Employees. Получить список всех сотрудников у которых зарплата находится в промежутке от 8000 до 9000 (включительно)
Решение

Таблица Employees. Получить список всех сотрудников у которых в имени содержится символ ‘%’
Решение

Таблица Employees. Получить список всех ID менеджеров
Решение

Таблица Employees. Получить список работников с их позициями в формате: Donald(sh_clerk)
Решение

Using Single-Row Functions to Customize Output

Таблица Employees. Получить список всех сотрудников у которых длина имени больше 10 букв
Решение

Таблица Employees. Получить список всех сотрудников у которых в имени есть буква ‘b’ (без учета регистра)
Решение

Таблица Employees. Получить список всех сотрудников у которых в имени содержатся минимум 2 буквы ‘a’
Решение

Таблица Employees. Получить список всех сотрудников зарплата которых кратна 1000
Решение

Таблица Employees. Получить первое 3х значное число телефонного номера сотрудника если его номер в формате ХХХ.ХХХ.ХХХХ
Решение

Таблица Departments. Получить первое слово из имени департамента для тех у кого в названии больше одного слова
Решение

Таблица Employees. Получить имена сотрудников без первой и последней буквы в имени
Решение

Таблица Employees. Получить список всех сотрудников у которых последняя буква в имени равна ‘m’ и длинной имени большей 5ти
Решение

Таблица Dual. Получить дату следующей пятницы
Решение

Таблица Employees. Получить список всех сотрудников которые работают в компании больше 17 лет
Решение

Таблица Employees. Получить список всех сотрудников у которых последня цифра телефонного номера нечетная и состоит из 3ех чисел разделенных точкой
Решение

Таблица Employees. Получить список всех сотрудников у которых в значении job_id после знака ‘_’ как минимум 3 символа но при этом это значение после ‘_’ не равно ‘CLERK’
Решение

Таблица Employees. Получить список всех сотрудников заменив в значении PHONE_NUMBER все ‘.’ на ‘-‘
Решение

Using Conversion Functions and Conditional Expressions

Таблица Employees. Получить список всех сотрудников которые пришли на работу в первый день месяца (любого)
Решение

Таблица Employees. Получить список всех сотрудников которые пришли на работу в 2008ом году
Решение

Читайте также:  какой краской лучше красить цсп снаружи

Таблица DUAL. Показать завтрашнюю дату в формате: Tomorrow is Second day of January
Решение

Таблица Employees. Получить список всех сотрудников и дату прихода на работу каждого в формате: 21st of June, 2007
Решение

Таблица Employees. Получить список работников с увеличенными зарплатами на 20%. Зарплату показать со знаком доллара
Решение

Таблица Employees. Получить список всех сотрудников которые приши на работу в феврале 2007го года.
Решение

Таблица DUAL. Вывезти актуальную дату, + секунда, + минута, + час, + день, + месяц, + год
Решение

Таблица Employees. Получить список всех сотрудников и информацию о наличии бонусов к зарплате (Yes/No)
Решение

Таблица Employees. Получить уровень зарплаты каждого сотрудника: Меньше 5000 считается Low level, Больше или равно 5000 и меньше 10000 считается Normal level, Больше иои равно 10000 считается High level
Решение

Таблица Countries. Для каждой страны показать регион в котором он находится: 1-Europe, 2-America, 3-Asia, 4-Africa (без Join)
Решение

Reporting Aggregated Data Using the Group Functions

Таблица Employees. Получить репорт по department_id с минимальной и максимальной зарплатой, с ранней и поздней датой прихода на работу и с количествов сотрудников. Сорировать по количеству сотрудников (по убыванию)
Решение

Таблица Employees. Сколько сотрудников имена которых начинается с одной и той же буквы? Сортировать по количеству. Показывать только те где количество больше 1
Решение

Таблица Employees. Сколько сотрудников которые работают в одном и тоже отделе и получают одинаковую зарплату?
Решение

Таблица Employees. Получить репорт сколько сотрудников приняли на работу в каждый день недели. Сортировать по количеству
Решение

Таблица Employees. Получить репорт сколько сотрудников приняли на работу по годам. Сортировать по количеству
Решение

Таблица Employees. Получить количество департаментов в котором есть сотрудники
Решение

Таблица Employees. Получить список department_id в котором работают больше 30 сотрудников
Решение

Таблица Employees. Получить список department_id и округленную среднюю зарплату работников в каждом департаменте.
Решение

Таблица Countries. Получить список region_id сумма всех букв всех country_name в котором больше 60ти
Решение

Таблица Employees. Получить список department_id в котором работают работники нескольких (>1) job_id
Решение

Таблица Employees. Получить список manager_id у которых количество подчиненных больше 5 и сумма всех зарплат его подчиненных больше 50000
Решение

Таблица Employees. Получить список manager_id у которых средняя зарплата всех его подчиненных находится в промежутке от 6000 до 9000 которые не получают бонусы (commission_pct пустой)
Решение

Таблица Employees. Получить максимальную зарплату из всех сотрудников job_id которыз заканчивается на слово ‘CLERK’
Решение

Таблица Employees. Получить максимальную зарплату среди всех средних зарплат по департаменту
Решение

Таблица Employees. Получить количество сотрудников с одинаковым количеством букв в имени. При этом показать только тех у кого длина имени больше 5 и количество сотрудников с таким именем больше 20. Сортировать по длинне имени
Решение

Displaying Data from Multiple Tables Using Joins

Таблица Employees, Departaments, Locations, Countries, Regions. Получить список регионов и количество сотрудников в каждом регионе
Решение

Таблица Employees, Departaments, Locations, Countries, Regions. Получить детальную информацию о каждом сотруднике:
First_name, Last_name, Departament, Job, Street, Country, Region
Решение

Таблица Employees. Показать всех менеджеров которые имеют в подчинении больше 6ти сотрудников
Решение

Таблица Employees. Показать всех сотрудников которые ни кому не подчиняются
Решение

Таблица Employees, Job_history. В таблице Employee хранятся все сотрудники. В таблице Job_history хранятся сотрудники которые покинули компанию. Получить репорт о всех сотрудниках и о его статусе в компании (Работает или покинул компанию с датой ухода)
Пример:
first_name | status
Jennifer | Left the company at 31 of December, 2006
Clara | Currently Working
Решение

Таблица Employees, Departaments, Locations, Countries, Regions. Получить список сотрудников которые живут в Europe (region_name)
Решение

Таблица Employees, Departaments. Показать все департаменты в которых работают больше 30ти сотрудников
Решение

Таблица Employees, Departaments. Показать всех сотрудников которые не состоят ни в одном департаменте
Решение

Таблица Employees, Departaments. Показать все департаменты в которых нет ни одного сотрудника
Решение

Таблица Employees. Показать всех сотрудников у которых нет ни кого в подчинении
Решение

Таблица Employees, Jobs, Departaments. Показать сотрудников в формате: First_name, Job_title, Department_name.
Пример:
First_name | Job_title | Department_name
Donald | Shipping | Clerk Shipping
Решение

Таблица Employees. Получить список сотрудников менеджеры которых устроились на работу в 2005ом году но при это сами эти работники устроились на работу до 2005 года
Решение

Таблица Employees. Получить список сотрудников менеджеры которых устроились на работу в январе месяце любого года и длина job_title этих сотрудников больше 15ти символов
Решение

Using Subqueries to Solve Queries

Таблица Employees. Получить список сотрудников с самым длинным именем.
Решение

Таблица Employees. Получить список сотрудников с зарплатой большей средней зарплаты всех сотрудников.
Решение

Таблица Employees, Departments, Locations. Получить город в котором сотрудники в сумме зарабатывают меньше всех.
Решение

Таблица Employees. Получить список сотрудников у которых менеджер получает зарплату больше 15000.
Решение

Таблица Employees, Departaments. Показать все департаменты в которых нет ни одного сотрудника
Решение

Таблица Employees. Показать всех сотрудников которые не являются менеджерами
Решение

Таблица Employees. Показать всех менеджеров которые имеют в подчинении больше 6ти сотрудников
Решение

Таблица Employees, Departaments. Показать сотрудников которые работают в департаменте IT
Решение

Таблица Employees, Jobs, Departaments. Показать сотрудников в формате: First_name, Job_title, Department_name.
Пример:
First_name | Job_title | Department_name
Donald | Shipping | Clerk Shipping
Решение

Таблица Employees. Получить список сотрудников менеджеры которых устроились на работу в 2005ом году но при это сами эти работники устроились на работу до 2005 года
Решение

Таблица Employees. Получить список сотрудников менеджеры которых устроились на работу в январе месяце любого года и длина job_title этих сотрудников больше 15ти символов
Решение

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

P.S.: Если кому то в голову придет интересная задача на SELECT, пишите в коментариях, добавлю в список.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Сказочный портал