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
) parAGENT_MASTER_ID
:ceci récupère toutes les lignes deT
avecAGENT_MASTER_ID
actuel - dans la partition formée vous
ORDER
lignes parROW_DT
- cet ordre vous permet de sélectionner les 30 lignes avant le
ROW_DT
actuel :c'est le sens duPRECEDING
mot-clé (0
sélectionnerait la ligne actuelle, le contraire est leFOLLOWING
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.