sql >> Database >  >> RDS >> Oracle

Wat betekent voorgaande in Oracle?

Je zoekt duidelijk naar een tabel T met kolommen WIN_30_DUR , AGENT_MASTER_ID en ROW_DT (onder andere). Houd er rekening mee dat zoekwoorden zoals OVER , PARTITION laat zien dat u een analytisch verzoek gebruikt:met dergelijke verzoeken kunt u informatie over de huidige rij van de andere krijgen, dat zou ingewikkeld en lang zijn om te schrijven met GROUP BY of andere "standaard" clausules.

Hier, op een bepaalde rij, kun je:

  • groep (PARTITION ) door AGENT_MASTER_ID :dit krijgt alle rijen van T met huidige AGENT_MASTER_ID
  • in de partitie die je hebt gevormd ORDER rijen door ROW_DT
  • met deze volgorde kunt u de 30 rijen selecteren vóór de huidige ROW_DT :dit is de betekenis van de PRECEDING zoekwoord (0 de huidige rij zou selecteren, het tegenovergestelde is de FOLLOWING clausule)
  • dan doe je een som op de WIN_30_DUR veld

In de gebruikelijke taal zou dit zoiets betekenen:neem voor elke agent de som van de duur van de voorafgaande 30 dagen.



  1. Voorwaardelijke JOIN-instructie SQL Server

  2. afbeeldingen zijn geüpload, maar ik kan ze niet zien

  3. Hibernate optimistische locking..hoe het werkt?

  4. Creëer weergave over meerdere databases