Ich habe diese Abfrage von jemand anderem geschrieben und ich versuche herauszufinden, wie es funktioniert. Ich habe eine allgemeine Idee über all diese Dinge wie row_number()
, partition by
, pivot
, aber ich bin nicht in der Lage, sie alle zusammen zu verstehen.Oracle 'Partition By' und 'Row_Number' Schlüsselwort zusammen mit Pivot
Für diese Abfrage:
Dieses es die Ausgabe von der Abfrage erzeugt, die gemäß der richtige ist:
select
d, p, s, a
from
(
select name,occupation, (ROW_NUMBER() OVER (partition by occupation order by name)) as rownumber from occupations
)
pivot
(
max(name)
for occupation
in ('Doctor' as d, 'Professor' as p, 'Singer' as s, 'Actor' as a)
)
order by rownumber;
Dies ist die Eingabetabelle die obige Abfrage funktioniert, auf dem Frage:
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
Jetzt möchte ich k nun, wie die Ausgabe durch die Abfrage erzeugt wird, d.h. Schritt für Schritt mit Ablauf der Ausführung. Eine Erklärung mit einfachen Beispielen, die der obigen Situation entsprechen, würde sehr geschätzt werden. Danke im Voraus.
Wer auch immer downvoted, bitte erwähnen Sie den Grund –