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

Чтение книги онлайн.

Читать онлайн книгу Основы программирования в СУБД Oracle. SQL+PL/SQL. - О. А. Ткачев страница 25

Основы программирования в СУБД Oracle. SQL+PL/SQL. - О. А. Ткачев

Скачать книгу

Вывести данные о товарах, название которых содержит слово AMD и не содержит слова RYZEN.

      5. Вывести названия товаров, второе слово которых состоит из шести букв.

      6. Вывести данные о товарах, второе слово в названии которых – — iPhone.

      7. Вывести данные о сотрудниках, которые были приняты на работу в понедельник.

      8. Вывести данные о сотрудниках, которые были приняты на работу 21 апреля.

      9. Для сотрудников, работающих в отделе 50, вывести разницу между текущей датой и датой приема на работу в формате: УУ лет ММ месяцев ДД дней.

      10. Вывести значения столбцов employee_id, first_name, last_name, salary и премию, которую они должны получить. Размер премии у сотрудников, которые получают комиссионные, равен зарплате с учетом комиссионных. Размер премии у сотрудников, которые не получают комиссионные, равен зарплате, увеличенной на 30%.

      11. Вывести значения столбцов employee_id, first_name, last_name, salary и bonus – премию, которую они должны получить. Размер премии зависит от рейтинга и вычисляется по следующему правилу:

      – если рейтинг сотрудника равен 5, то bonus = salary * 1.5;

      – если рейтинг сотрудника равен 4, то bonus = salary * 1.3;

      – если рейтинг сотрудника равен 3, то bonus = salary * 1.1;

      – сотрудникам, рейтинг которых меньше 3, премия не полагается.

      12. Вывести значения столбцов employee_id, first_name, last_name, salary и category. Значение категории (category) определяется по следующему правилу:

      – если rating_e ≥ 4 и salary ≥ 10 000, то category = ′High′;

      – если rating_e <3 и salary <5000, то category = ′Low′;

      – у остальных сотрудников category = ′Middle′.

      Глава 4. Агрегатные функции и группировка данных

      Агрегатные функции

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

      Таблица 4.1. Агрегатные функции

      Синтаксис агрегатных функций:

      {имя функции} ({Аргумент})

      где: expr – аргумент агрегатной функции, который может содержать следующие элементы:

      [DISTINCT] {имя столбца} | {выражение} | {однострочная функция}

      Следует обратить внимание на то, что аргументом групповой функции может быть однострочная функция. Хотя стандарт языка SQL запрещает использование агрегатных функций в качестве аргумента агрегатных функций, СУБД Oracle допускает это, но только на один уровень в глубину и только в предложении SELECT. Рассмотрим примеры использования агрегатных функций.

      Пример 4.1. Вывод обобщенных данных о зарплате сотрудников

      SELECT MIN (salary) AS minimum, MAX (salary) AS maximum, ROUND (AVG (salary)) AS medium, SUM (salary) As summa, COUNT (salary), COUNT (*)

      FROM Employees;

      В полученном результате следует обратить внимание на то, что:

      – COUNT (salary) возвращает число сотрудников, получающих зарплату, у которых значение столбца salary не NULL;

      – COUNT (*) возвращает число всех сотрудников.

      Этот запрос не учитывает то, что некоторые сотрудники получают

Скачать книгу