我有這個查詢由其他人寫的,我想弄清楚它是如何工作的。我對所有這些東西有一般的想法,例如row_number()
,partition by
,pivot
,但我無法一起理解它們。Oracle'分區依據'和'Row_Number'關鍵字以及關鍵點
對於該查詢:
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;
這是在其上面的查詢工作輸入表:
此它通過查詢生成的輸出,該輸出按正確的問題:
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
現在,我要爲k現在查詢如何產生輸出,即逐步執行流程。簡單的例子與上述情況匹配的解釋將不勝感激。提前致謝。你有以下
無論誰低估,請提及原因 –