Oracle
 sql >> Base de données >  >> RDS >> Oracle

Que signifie précédent dans Oracle ?

Vous interrogez évidemment une table T avec des colonnes WIN_30_DUR , AGENT_MASTER_ID et ROW_DT (entre autres). N'oubliez pas que des mots clés tels que OVER , PARTITION montrez que vous utilisez une requête analytique :de telles requêtes permettent d'obtenir des informations sur la ligne en cours à partir des autres, ce qui serait complexe et long à écrire avec GROUP BY ou d'autres clauses "standard".

Ici, sur une ligne donnée, vous :

  • groupe (PARTITION ) par AGENT_MASTER_ID :ceci récupère toutes les lignes de T avec AGENT_MASTER_ID actuel
  • dans la partition formée vous ORDER lignes par ROW_DT
  • cet ordre vous permet de sélectionner les 30 lignes avant le ROW_DT actuel :c'est le sens du PRECEDING mot-clé (0 sélectionnerait la ligne actuelle, le contraire est le FOLLOWING clause)
  • puis vous faites une somme sur le WIN_30_DUR champ

En langage courant, cela voudrait dire quelque chose comme :pour chaque agent, prendre la somme des durées des 30 jours précédents.