Sql 了解以下查询的结果集

Sql 了解以下查询的结果集,sql,oracle11g,Sql,Oracle11g,有谁能帮助我理解这个查询是如何工作的吗..分区内的大小写使我很难理解这个查询的结果集。I am l(忽略生成语法错误的中前面的逗号。) 有两个案例陈述。外部的一个表示“我只打算在id为1时分配一个数字。其他所有内容都将获得一个NULL值 内部的一个是计算值。它将数据分成两组,一组是num=3,另一组是其他所有数据。计算是num的sum 因此,查询执行以下操作:将num等于3或不等于3的num之和分配给id=1的每一行 with sample_data as ( select 1 id, 1

有谁能帮助我理解这个查询是如何工作的吗..分区内的大小写使我很难理解这个查询的结果集。I am l

(忽略生成语法错误的
前面的逗号。)

有两个案例陈述。外部的一个表示“我只打算在
id
1
时分配一个数字。其他所有内容都将获得一个
NULL

内部的一个是计算值。它将数据分成两组,一组是
num=3
,另一组是其他所有数据。计算是
num
sum

因此,查询执行以下操作:将num等于3或不等于3的num之和分配给
id=1
的每一行

with sample_data as (
  select 1 id, 1 num, 'Hello' val from dual union all
  select 1 id, 2 num, 'Goodbye' val from dual union all
  select 2 id, 2 num, 'Hey' val from dual union all
  select 2 id, 4 num, 'What''s up?' val from dual union all
  select 3 id, 5 num, 'See you' val from dual)

select id,
NUM,

CASE
  WHEN ID=1 THEN
    SUM(NUM) OVER (PARTITION BY CASE WHEN NUM=3 THEN ID END  )
END AS SUM_1,


from sample_data