按日期对sql表中的累积视图求和Snowflake



我有一个以日期、引用号和视图为列的sql表,我正试图根据引用号分组的日期为每行添加视图。

我有3天的数据,比如3月27日、28日和29日,我有多个参考号,但我们取一个参考号:123。我想将该引用的视图数从27添加到28,并在28的同一行中生成一个新列。然后将从28到29视图中得到的数字相加,并将其放入29视图的同一行中的新列中。

create or replace view acq.vw_cumulative(DATE, REF, VIEWS, URL, CUML_VIEWS)
as
SELECT DATE, REF, VIEWS, URL, sum(VIEWS) WHERE DATE > DATE - 1 OVER (PARTITION BY REF) FROM ACQ.CUMULATIVE;

这是我刚开始的内容,但它只是返回总和并附加到所有3行

所以使用这个CTE只是为了简单起见(对我来说(;"伪造数据";

WITH data_table(date, ref, views) as (
SELECT * FROM VALUES
('2022-03-27'::date, 123, 100),   
('2022-03-28'::date, 123, 20),   
('2022-03-29'::date, 123, 3),   
('2022-03-27'::date, 44, 10),   
('2022-03-28'::date, 44, 200),   
('2022-03-29'::date, 44, 32)   
)

可以使用下面的SQL,基本上你需要做一点不同的SUM。

SELECT d.date,
d.ref,
d.views,
SUM(d.views) OVER (partition by d.ref order by d.date) as CUMULATIVE
FROM data_table AS d
order by 2,1;

我们将得到所有先前视图值的总和。

视图1003<123>
DATE参考累积
2022-03-274410
2022-03-2844200210
2022-03-294432242
2022-03-27123100
2022-03-2812320120
2022-03-29123

最新更新