sql >> Database teknologi >  >> RDS >> Oracle

Hvad betyder det foregående i Oracle?

Du forespørger åbenbart i en tabel T med kolonner WIN_30_DUR , AGENT_MASTER_ID og ROW_DT (blandt andre). Husk, at søgeord som OVER , PARTITION vis, at du bruger en analytisk anmodning:Sådanne anmodninger giver dig mulighed for at få oplysninger om den aktuelle række fra de andre, som ville være komplekse og lange at skrive med GROUP BY eller andre "standard" klausuler.

Her på en given række:

  • gruppe (PARTITION ) af AGENT_MASTER_ID :dette får alle rækkerne af T med nuværende AGENT_MASTER_ID
  • i den partition, du dannede ORDER rækker efter ROW_DT
  • denne rækkefølge giver dig mulighed for at vælge de 30 rækker før den aktuelle ROW_DT :dette er betydningen af ​​PRECEDING søgeord (0 ville vælge den aktuelle række, det modsatte er FOLLOWING klausul)
  • så laver du en sum på WIN_30_DUR felt

På sædvanligt sprog vil dette betyde noget som:For hver agent, tag summen af ​​varigheden af ​​de foregående 30 dage.



  1. Konverter 'tid' til 'datetime2' i SQL Server (T-SQL-eksempler)

  2. Sådan installeres MySQL på macOS

  3. Doctrine 2 QueryBuilder tilføje flere udvalgte elementer /parametre?

  4. Uafhængig af store og små bogstaver REPLACE til MySQL