Oracle
 sql >> база данни >  >> RDS >> Oracle

Разделяне на Oracle по ключова дума

PARTITION BY клаузата задава диапазона от записи, които ще се използват за всяка "GROUP" в рамките на OVER клауза.

Във вашия примерен SQL, DEPT_COUNT ще върне броя на служителите в този отдел за всеки запис на служители. (Сякаш де-номализирате emp маса; все още връщате всеки запис в emp таблица.)

emp_no  dept_no  DEPT_COUNT
1       10       3
2       10       3
3       10       3 <- three because there are three "dept_no = 10" records
4       20       2
5       20       2 <- two because there are two "dept_no = 20" records

Ако имаше друга колона (напр. state ) тогава можете да преброите колко департамента в този щат.

Това е като получаване на резултатите от GROUP BY (SUM , AVG и т.н.) без агрегирането на набора от резултати (т.е. премахване на съвпадащи записи).

Полезно е, когато използвате LAST OVER или MIN OVER функции, за да получите например най-ниската и най-високата заплата в отдела и след това да я използвате при изчисление спрямо това записване на заплата без подизбиране, което е много по-бързо.

Прочетете свързаната статия на AskTom за повече подробности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да свържете Airflow към базата данни на Oracle

  2. Премахване на дублиращи се редове в таблица

  3. Свързване към групи от обекти чрез (ВЪНШНО ПРИЛОЖЕНИЕ) oracle 11.2.0.3.0 не поддържа прилагане

  4. Първи стъпки с Oracle SQL Developer на MacOSX

  5. Как да боравим с незадължителни параметри в SQL заявка?