Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала

Тут можно читать онлайн Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала - бесплатно ознакомительный отрывок. Жанр: comp-programming, год 11. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Oracle SQL. 100 шагов от новичка до профессионала
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    11
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала краткое содержание

Oracle SQL. 100 шагов от новичка до профессионала - описание и краткое содержание, автор Максим Чалышев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Более 300 ответов на вопросы.
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.

Oracle SQL. 100 шагов от новичка до профессионала - читать онлайн бесплатно ознакомительный отрывок

Oracle SQL. 100 шагов от новичка до профессионала - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Максим Чалышев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

REGEXP_INSTR

REGEXP_INSTR определяет номер первого символа вхождения REGEXP шаблона в строку.

Рисунок 159. Демонстрация REGEXP_INSTR

REGEXP_COUNT

REGEXP_COUNT определяет количество вхождений REGEXP шаблона в строку.
Пример использования REGEXP_COUNT (выражение; «REGEXP шаблон») :
Определим количество цифр REGEXP [0—9] в строках таблицы.

Рисунок 160. Демонстрация REGEXP_COUNT: запрос к таблице REGTEST

Важные замечания

На самом деле в REGEXP_LIKE, REGEXP_SUBSTR имеется ряд дополнительных параметров, которые влияют на результат работы данных функций.

Некоторые дополнительные интересные примеры использования REGEXP.

Выбираем подстроку с разделителями, есть строка Зайцев, 01111998, Киев = Зайцев 01111998 Киев

Для примера выберем только фамилию и город.

Рисунок 161. Запрос к таблице REGTEST: демонстрация REGEXP_SUBSTR

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

Рисунок 162. Демонстрация REGEXP_SUBSTR и LEVEL

Или более простой пример: найдем количество букв «о» в слове «молоко».

Вопросы учеников

Приведите еще несколько примеров использования регулярных выражений в SQL.

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

Проверка телефона на соответствие заданной маске:

Парсинг и замена XML-выражения:

Контрольные вопросы и задания для самостоятельного выполнения

1. Повторить запросы ЭТОГО шага.

2. Подсчитать количество букв «т» в слове «трактор», используя регулярные выражения.

3. Используя регулярные выражения, выбрать все телефоны из таблицы AUTO, начинающиеся с 911, 915 (REGEXP_LIKE, REGEXP_SUBSTR).

Шаг 60. Аналитический SQL. Запросы рейтингов. Накопительный итог

Введение

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

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

Теория и практика

Аналитические запросы в практическом плане чаще применяются для решения следующих специализированных задач:

• запросы с рейтингами;

• запросы с накопительным итогом;

• запросы для вычисления результата в рамках временного окна;

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

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

Рассмотрим общую структуру аналитических запросов:

Аналитическая функция — одна из аналитических функций, ниже по тексту есть описание данных функций.

• OVER — специальная конструкция, показывающая базе данных, что в запросе используется аналитический SQL;

• PARTITION — партицирование — это логическая модель разделения данных в запросе, некий сегмент данных, объединенных по общему признаку (обычно это одна или несколько колонок запроса);

• ORDER BY — упорядочивание — показывает, как будут отсортированы данные в рамках заданного сегмента (ASC/DESC): порядок, по возрастанию или по убыванию.

В аналитическом SQL наиболее важная составляющая запроса — аналитические функции.

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

• ROW_NUMBER () — номер строки в группе;
• LAG (f, n,m): f — имя колонки, n — предыдущее значение в группе, m — значение по умолчанию;
• LEAD (f, n,m): f — имя колонки, n — последующее значение в группе, m — значение по умолчанию;
• FIRST_VALUE (f): f — имя колонки, первое значение в группе;
• LAST_VALUE (f): f — имя колонки, последнее значение в группе;
• STD_DEV (f): f — имя колонки, значение стандартного распределения в группе;
• SUM (f): f — имя колонки, накопительная сумма по группе;
• AVG (f): f — имя колонки, среднее по группе заданных групп;
•RANK (f): f — имя колонки, относительный ранг записи в группе;
•DENSe_RANK (f): f — имя поля, абсолютный ранг записи в группе.

Проще всего разобраться с аналитическими функциями и аналитическим SQL на примерах.

Подготовим необходимые данные для демонстрации:

— табельный номер, имя, отдел, зарплата.

У нас есть таблица PERSONA, в которой есть колонки «табельный номер сотрудника», «имя сотрудника», «номер отдела, в котором работает сотрудник» и «оклад сотрудника в долларах».

Запросы списка лидеров

Первые по заплате в рамках отдела, первые по продажам, люди самой высокой зарплатой, рейтинги сотрудников по показателям — все это запросы списка лидеров.

Первые три сотрудника с самой высокой зарплатой по отделам (сегмент по отделу).

Данный запрос делит сотрудников на отделы по номеру отдела PARTITION BY OTD, сортирует сотрудников по заплате и с помощью внешнего запроса выводит на экран первых трех сотрудников с самой высокой зарплатой.

Выполним сначала следующий запрос:

Рисунок 163. Демонстрация работы аналитических функций

Колонка NUM, полученная с помощью аналитической функции ROW_NUMBER () и аналитического подзапроса, возвращает номер строки в наборе данных, разбитом по колонке OTD, отсортированном по SAL.

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

Рисунок 164. Демонстрация работы аналитических функций

Еще один пример: данные делятся по наименованию отдела OTD, а сортировка данных в рамках сегмента по имени — NAME.

По наименованию (PARTITION по отделу), сортировка по NAME.

Вывести рабочие дни в следующем месяце, выходные не учитываются.

Рисунок 165. Демонстрация работы аналитических функций: запрос к PERSONA

Запросы с накопительным итогом

Накопление суммы в рамках отдела, накопление прибыли в рамках заданного месяца, накопление бонусов в рамках карты с сортировкой по дате — все это запросы с накопительным итогом.

Запросы с накопительным итогом пишутся аналогично запросам, которые мы только что проходили, различаются только функции. В данном случае рассмотрим аналитическую функцию SUM.

Накопительный итог по зарплате.

В данном запросе в колонке Num формируется накопительный итог по зарплате — аналитическая функция SUM (SAL), в рамках отдела с сортировкой по зарплате OVER (PARTITION BY OTD ORDER BY SAL).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Максим Чалышев читать все книги автора по порядку

Максим Чалышев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Oracle SQL. 100 шагов от новичка до профессионала отзывы


Отзывы читателей о книге Oracle SQL. 100 шагов от новичка до профессионала, автор: Максим Чалышев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x