Postgres:如何比较当前年度与过去年度与当前日期的销售额

时间:2019-07-04 09:25:15

标签: postgresql

我有下表“ sales”

new GenerateSW({
            skipWaiting: true, // 强制等待中的 Service Worker 被激活
            clientsClaim: true, // Service Worker 被激活后使其立即获得页面控制权
            swDest: 'serviceWroker.js', // 输出 Service worker 文件
            exclude: [/service-wroker\.js/, /\.html/, /\.json/, /\.map/, /png|jpg|gif|svg/, /css\/\d/, /js\/\d/],
            runtimeCaching:
            [
                // 配置路由请求缓存
                {
                    urlPattern: /\.js|\.css|\.png|\.jpg|\.gif|\.svg/,
                    handler: 'cacheFirst'
                },
                {
                    urlPattern: /html|\/$|\/\?/,
                    handler: 'networkFirst'
                }
            ]
})

我想将当年与过去一年的销售与当前日期进行比较,并得到以下结果:

date        revenue
2018-06-01  300
2018-06-02  400
2019-06-01  500
2019-06-02  700

我应该使用什么查询?

问题是我应该以某种方式将2018年的收入归为2019年的收入。

1 个答案:

答案 0 :(得分:1)

您可以通过自我加入来实现:

select 
  s1.date,
  s1.revenue revenue2019,
  s2.revenue revenue2018
from sales s1 inner join sales s2
on s1.date = s2.date + interval '1' year
where date_part('year', s1.date) = 2019

请参见demo
结果:

> date       | revenue2019 | revenue2018
> :--------- | ----------: | ----------:
> 2019-06-01 |         500 |         300
> 2019-06-02 |         700 |         400