Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ ORACLE SQL \ JAVA ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


8урок по oracle sql, Логика SELECT и аналитические функции


--Выборка данных - SELECT

--Возможные члены: SELECT, FROM, WHERE, GROUP BY, HAVING, PIVOT, UNPIVOT, CONNECT BY, ORDER BY. 
--Члены SELECT и FROM в конструкции - обязательны.

--Проризводительность во многом завист от правильно спланированного запроса
--Т.е. отсечение ненужных данных на уровне WHERE даст большую производительность, чем на уровне HAVING например
--Т.к. далее в обработке уже не будут участвовать не нужные нам данные
--Логика обработки этапов SELECT:
--FROM
--PIVOT, UNPIVOT
--CONNECT BY
--WHERE
--GROUP BY
--HAVING
--ORDER BY
--SELECT

--Выдает уникальные значения
--DISTINCT - пример SELECT DISTINCT FIRST_NAME FROM HR.EMPLOYEES

--Все дубляжи - SELECT FIRST_NAME FROM HR.EMPLOYEES GROUP BY FIRST_NAME HAVING COUNT(*) > 1

--Аналитические функции
--ROW_NUMBER - нумерует строки, возвращаемые запросом.
--RANK и DENSE_RANK - нумеруют строки, которые имеют одинаковые значения в столбцах, по которым выполняется упорядочивание
--Такие строки получают одинаковые номера (ранги).
--Разница между ними в шаге приращения ранга (по самому рангу или по позиции строки)
SELECT 
  FIRST_NAME
, SALARY
, ROW_NUMBER() OVER (ORDER BY SALARY DESC) AS row_number_desc
, ROW_NUMBER() OVER (ORDER BY SALARY)      AS row_number_asc
, RANK()       OVER (ORDER BY SALARY)      AS rank
, DENSE_RANK() OVER (ORDER BY SALARY)      AS dense_rank
FROM HR.EMPLOYEES 
;

--RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW - суммируем по ORDER BY FIRST_NAME 
SELECT 
  FIRST_NAME
, SALARY
, SUM(SALARY) OVER
  (
   ORDER BY FIRST_NAME 
   RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 
  ) AS sum_over_range
FROM HR.EMPLOYEES 
;

Видео есть на моем канале YouTube

<span style="&quot;color:rgb(178," 34,="" 34)"="">


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект