0
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

任何人都可以帮助我理解这个查询是如何工作的。分区内的情况让我很难理解这个查询的结果集。我是我

4

1 回答 1

0

(忽略之前的逗号from会产生语法错误。)

有两个案例陈述。外面的人说“我只会在idis时分配一个数字1。其他一切都会得到一个NULL值。

内部是计算价值。它将数据分成两组,一组num = 3和其他组。计算是sumnum

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

于 2013-08-11T17:15:59.840 回答