我的代码是一段时间内的累计收入。如果一天是空白(当天没有收入),则需要它来显示前一天的总计。 CASE WHEN(今天为空白),昨天的数据ELSE今天的总数
我不确定这是什么语法。
select distinct
date_trunc('day',admit_date) as admit_date,
revenue,
sum(revenue) over(order by admit_date) as running_rev
from dailyrev
order by admit_date
预期结果:
Day 1: $100
Day 2: $200
Day 3: (no data so show Day 2 data) $200
答案 0 :(得分:0)
也许这就是您需要的:
"dependencies": {
"core": "git+ssh://git@ourdomain.com:2999/coredependency#master",
"intelligence": "git+ssh://git@ourdomain.com:2999/dependency2.git#feature/jk-1212",
"notifications": "git+ssh://git@ourdomain.com:2999/dependency3.git#master",
"social": "git+ssh://git@git.ccmteam.com:2999/cdependency4#develop",
"gulp-cli": "2.0.1",
不幸的是,PostgreSQL还不支持SELECT admit_date,
prev_revs[cardinality(prev_revs)] AS adj_revenue,
sum(prev_revs[cardinality(prev_revs)])
OVER (ORDER BY admit_date) AS running_sum
FROM (SELECT date_trunc('day', admit_date) AS admit_date,
array_remove(array_agg(revenue)
OVER (order by admit_date),
NULL) AS prev_revs
FROM dailyrev) AS q
ORDER BY admit_date;
子句,所以它会更简单。
答案 1 :(得分:0)
我不确定这是否是您想要的,但是请尝试以下操作:
SELECT
gs.date::date AS admit_date,
(SELECT revenue FROM dailyrev WHERE admit_date::date = gs.date) AS revenue,
(SELECT SUM(revenue) FROM dailyrev WHERE admit_date::date <= gs.date) AS accumulated_total
FROM
generated_series(
(SELECT MIN(admit_date::date) FROM dailyrev),
(SELECT MAX(admit_date::date) FROM dailyrev),
INTERVAL '1 day'
) gs
ORDER BY gs.date::date;
是的,看起来并不好,但是..