Du frågar uppenbarligen en tabell T med kolumner WIN_30_DUR , AGENT_MASTER_ID och ROW_DT (bland andra). Tänk på att sökord som OVER , PARTITION visa att du använder en analytisk begäran:sådana förfrågningar låter dig få information om den aktuella raden från de andra, som skulle vara komplex och lång att skriva med GROUP BY eller andra "standard"-satser.
Här, på en given rad, du:
- grupp (
PARTITION) avAGENT_MASTER_ID:detta får alla rader avTmed nuvarandeAGENT_MASTER_ID - i den partition som du skapade
ORDERrader efterROW_DT - denna ordning låter dig välja de 30 raderna före den nuvarande
ROW_DT:detta är innebörden avPRECEDINGnyckelord (0skulle välja den aktuella raden, motsatsen ärFOLLOWINGklausul) - sedan gör du en summa på
WIN_30_DURfältet
På vanligt språk skulle detta betyda något i stil med:för varje agent, ta summan av varaktigheterna för de föregående 30 dagarna.