Postgresql 撤消运行总数
我的数据格式已经包含了上述数据日期内访客的总流量。我试图做的是将running total格式中的指标转换为特定日期内发生的访问量Postgresql 撤消运行总数,postgresql,Postgresql,我的数据格式已经包含了上述数据日期内访客的总流量。我试图做的是将running total格式中的指标转换为特定日期内发生的访问量 Current Table site|Run Tol Visits|Date -----+--------------+-------- aol | 24 |01/01/19 aol | 57 |01/02/19 aol| 100|01/03/19 aol|
Current Table
site|Run Tol Visits|Date
-----+--------------+--------
aol | 24 |01/01/19
aol | 57 |01/02/19
aol| 100|01/03/19
aol| 140|01/04/19
cnn | 24 |01/01/19
cnn | 57 |01/02/19
cnn| 100|01/03/19
cnn| 140|01/04/19
fox | 24 |01/01/19
fox | 57 |01/02/19
fox| 100|01/03/19
fox| 140|01/04/19
Desired output
Visits|Date
-------+--------
24|01/01/19
33|01/02/19
43|01/03/19
40|01/04/19
使用以下选项,例如:
谢谢,如果有一个额外的维度需要加倍,如第一个示例中所示,该怎么办?
with my_table(site, total_visits, date) as (
values
('aol', 24, '01/01/19'),
('aol', 57, '01/02/19'),
('aol', 100, '01/03/19'),
('aol', 140, '01/04/19'),
('cnn', 24, '01/01/19'),
('cnn', 57, '01/02/19'),
('cnn', 100, '01/03/19'),
('cnn', 140, '01/04/19'),
('fox', 24, '01/01/19'),
('fox', 57, '01/02/19'),
('fox', 100, '01/03/19'),
('fox', 140, '01/04/19')
)
select
site,
total_visits,
date,
total_visits- lag(total_visits, 1, 0) over (partition by site order by date) as visits
from my_table;
site | total_visits | date | visits
------+--------------+----------+--------
aol | 24 | 01/01/19 | 24
aol | 57 | 01/02/19 | 33
aol | 100 | 01/03/19 | 43
aol | 140 | 01/04/19 | 40
cnn | 24 | 01/01/19 | 24
cnn | 57 | 01/02/19 | 33
cnn | 100 | 01/03/19 | 43
cnn | 140 | 01/04/19 | 40
fox | 24 | 01/01/19 | 24
fox | 57 | 01/02/19 | 33
fox | 100 | 01/03/19 | 43
fox | 140 | 01/04/19 | 40
(12 rows)