是否可以对SQL中的同一列应用多个窗口函数

问题描述 投票:0回答:1

我不知道这样的事情是否可能

WITH t1(day_partition, entity_id, feature) AS (values
  ('2020-05-15', 'id_1', 1),
  ('2020-05-16', 'id_1', 2),
  ('2020-05-15', 'id_2', 3),
  ('2020-05-16', 'id_2', 4)

)

SELECT
  day_partition,
  entity_id,
  LAG(SUM(feature)) OVER (PARTITION BY entity_id order by day_partition) AS x
  -- or perhaps like this?
  --- LAG(SUM(feature) OVER (PARTITION BY entity_id order by day_partition)) OVER () AS x
FROM t1

以下查询产生了预期的结果,但我想知道是否可以提供tmp

WITH t1(day_partition, entity_id, feature) AS (values
  ('2020-05-15', 'id_1', 1),
  ('2020-05-16', 'id_1', 2),
  ('2020-05-15', 'id_2', 3),
  ('2020-05-16', 'id_2', 4)

),

tmp AS (
  SELECT
    day_partition,
    entity_id,
    SUM(feature) OVER (PARTITION BY entity_id order by day_partition) AS x
  FROM
    t1
)

SELECT
  day_partition,
  entity_id,
  LAG(x) OVER ()
FROM
  tmp

enter image description here

sql window-functions
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.