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

Какво означава предшестване в Oracle?

Очевидно правите запитване към таблица T с колони WIN_30_DUR , AGENT_MASTER_ID и ROW_DT (наред с други). Имайте предвид, че ключови думи като OVER , PARTITION покажете, че използвате аналитична заявка:такива заявки ви позволяват да получите информация за текущия ред от другите, което би било сложно и дълго за писане с GROUP BY или други "стандартни" клаузи.

Тук, на даден ред, вие:

  • група (PARTITION ) от AGENT_MASTER_ID :това получава всички редове на T с текущ AGENT_MASTER_ID
  • във образувания дял Вие ORDER редове от ROW_DT
  • това подреждане ви позволява да изберете 30-те реда преди текущия ROW_DT :това е значението на PRECEDING ключова дума (0 ще избере текущия ред, обратното е FOLLOWING клауза)
  • след това правите сума на WIN_30_DUR поле

На обикновен език това би означавало нещо като:за всеки агент вземете сбора от продължителностите на предходните 30 дни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Името на колоната се повтаря в резултатите от заявката

  2. С изключение на неподдържани таблици, които да бъдат заснети от потоци на Oracle

  3. Как работи GROUP BY?

  4. Функция JSON_TABLE() в Oracle

  5. Хибернация, идентификатор, оракул, последователност