繁体   English   中英

Postgres查询以按日期获取数据

[英]Postgres query to get data datewise

我正在使用PostgreSQL。
我有一个如下表:

ID   product_id   Date         Qty
-----------------------------------
1    12           2008-06-02   50
2     3           2008-07-12    5
3    12           2009-02-10   25
4    10           2012-11-01   22
5     2           2011-03-25    7

现在我想要下面的结果(即最近4年的乘积数量的乘积明智):

product_id
QTY(current_year)  
QTY( current year + last_year)  
QTY_last2_years 
QTY > 2 years
SELECT product_id
      ,sum(CASE mydate >=  x.t THEN qty END) AS qty_current_year
      ,sum(CASE mydate >= (x.t - interval '1 y') THEN qty END) AS qty_since_last_year
      ,sum(CASE mydate >= (x.t - interval '2 y')
            AND mydate <   x.t THEN qty END) AS qty_last_2_year
      ,sum(CASE mydate <  (x.t - interval '2 y') THEN qty END) AS qty_older
FROM   tbl
CROSS  JOIN (SELECT date_trunc('year', now()) AS t) x -- calculate once
GROUP  BY 1;

为了重用当前年度的计算值,我将其CROSS JOIN为子查询x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM