Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Was bedeutet vorangehend in Oracle?

Sie fragen offensichtlich eine Tabelle T ab mit Spalten WIN_30_DUR , AGENT_MASTER_ID und ROW_DT (unter anderen). Denken Sie daran, dass Schlüsselwörter wie OVER , PARTITION zeigen Sie, dass Sie eine analytische Anfrage verwenden:Solche Anfragen ermöglichen es Ihnen, Informationen über die aktuelle Zeile von den anderen zu erhalten, was komplex und langwierig wäre, mit GROUP BY zu schreiben oder andere "Standard"-Klauseln.

Hier, in einer bestimmten Zeile, Sie:

  • Gruppe (PARTITION ) durch AGENT_MASTER_ID :Dadurch werden alle Zeilen von T abgerufen mit aktueller AGENT_MASTER_ID
  • in der von Ihnen gebildeten Partition ORDER Zeilen nach ROW_DT
  • Diese Reihenfolge ermöglicht es Ihnen, die 30 Zeilen vor dem aktuellen ROW_DT auszuwählen :Dies ist die Bedeutung des PRECEDING Schlüsselwort (0 würde die aktuelle Zeile auswählen, das Gegenteil ist das FOLLOWING Klausel)
  • dann machst du eine Summe auf der WIN_30_DUR Feld

In der üblichen Sprache würde dies etwa bedeuten:Nehmen Sie für jeden Agenten die Summe der Dauern der vorangegangenen 30 Tage.