首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据generate_serial的结果,Postgres每天查询滚动金额

根据generate_serial的结果,Postgres每天查询滚动金额
EN

Stack Overflow用户
提问于 2017-11-21 20:21:00
回答 1查看 139关注 0票数 0

我有一个表,我想做一个查询,它显示一个产品的库存在一个时期的每一天,而不仅仅是库存移动完成的日期。

我的解决办法是:

SELECT gs::date, COALESCE(moves,0), btb_goods FROM generate_series('2017-10-01','2017-11-30',INTERVAL '1 DAY') AS gs LEFT JOIN (SELECT COALESCE(SUM(btb_menny),0) as moves, btb_goods, btb_date FROM mytable GROUP BY btb_goods, btb_date) AS mozg ON (date(mozg.btb_date) = gs) ORDER BY 1 ASC;

它起作用了。结果是:

代码语言:javascript
复制
 2017-11-05 |        0 |         |     
 2017-11-06 |        0 |         |     
 2017-11-07 |        0 |         |     
 2017-11-08 |     54.1 |   sugar |  
 2017-11-09 |        0 |         |    
 2017-11-10 |        0 |         |    
 2017-11-11 |        0 |       

A要从库存发生之日起滚动结果,如下所示:

代码语言:javascript
复制
 2017-11-05 |        0 |         |     
 2017-11-06 |        0 |         |     
 2017-11-07 |        0 |         |     
 2017-11-08 |     54.1 |   sugar |  
 2017-11-09 |     54.1 |   sugar |    
 2017-11-10 |     54.1 |   sugar |    
 2017-11-11 |     54.1 |     

我想,我应该以某种方式写WHERE mozg.btb_date ‹ ...

但我不知道如何实施。

提前通知。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-21 21:03:16

这假设了很多,如果它不适用于您的真实数据集,我也不会感到震惊,但是它应该对您的示例有效:

代码语言:javascript
复制
with cte as (
  SELECT
    gs::date, COALESCE(moves,0) as moves, btb_goods 
  FROM generate_series('2017-10-01','2017-11-30',INTERVAL '1 DAY') AS gs 
  LEFT JOIN (
    SELECT COALESCE(SUM(btb_menny),0) as moves, btb_goods, btb_date
    FROM mytable
    GROUP BY btb_goods, btb_date) AS mozg 
  ON (date(mozg.btb_date) = gs)
)
select
  gs, sum (moves) over (order by gs) as moves,
  max (btb_goods) over (order by gs) as btb_goods
from cte
order by gs

这是缺失的(I 认为),当您遇到另一个非空值的记录时,您会做什么,特别是在文本(但也包括数字)上。你想怎么处理?

换句话说,当您的初始查询返回以下内容时,所需的结果是什么:

代码语言:javascript
复制
11/1/2017     0
11/2/2017    12     jelly
11/3/2017     0
11/4/2017    15     jam
11/5/2017     0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47422004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档