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 avT
med nuvarandeAGENT_MASTER_ID
- i den partition som du skapade
ORDER
rader efterROW_DT
- denna ordning låter dig välja de 30 raderna före den nuvarande
ROW_DT
:detta är innebörden avPRECEDING
nyckelord (0
skulle välja den aktuella raden, motsatsen ärFOLLOWING
klausul) - sedan gör du en summa på
WIN_30_DUR
fä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.