Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

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)"="">


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

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

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


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru