我有这个查询由其他人写的,我想弄清楚它是如何工作的。我对所有这些东西有一般的想法,例如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现在查询如何产生输出,即逐步执行流程。简单的例子与上述情况匹配的解释将不胜感激。提前致谢。你有以下
无论谁低估,请提及原因 –