PostgreSQL-在給定的安裝和卸載表中查找每天的安裝次數

我有一張這樣的機器安裝表:

installationID, machineID, installed_at, uninstalled_at
A, 1, 2020-01-01, Null
B, 2, 2020-01-01, 2020-01-02
C, 3, 2020-01-02, Null
D, 2, 2020-01-04, Null

我需要一個查詢,返回每天安裝的機器數量。這樣地:

Date, installed
2020-01-01, 2
2020-01-02, 3
2020-01-03, 2 
2020-01-04, 3

我知道給定一個日期,比如說'2020-01-03',我可以得到安裝機器的數量,如下所示:

SELECT date, count(machineID) 
from installs 
where installed_at >= '2020-01-03' 
and (uninstalled_at is Null or uninstalled_at <= '2020-01-03')

但是,我不知道如何查詢,這樣我就可以在一次查詢中得到所有日期的結果。

? 最佳回答:

使用從2020-01-01到2020-01-15生成的序列。根據需要調整“<=/>”。

select generate_series dt, count(*) n
from  generate_series('2020-01-01'::timestamp , '2020-01-15'::timestamp, '1 day')  
left join tbl on installed_at <= generate_series and ( uninstalled_at is null or uninstalled_at > generate_series)
group by generate_series
order by generate_series;
主站蜘蛛池模板: 亚洲中文字幕无码一区| 小泽玛丽无码视频一区| 中文字幕亚洲一区二区va在线| 日韩免费视频一区二区| 天天看高清无码一区二区三区| 国产在线乱子伦一区二区| 香蕉在线精品一区二区| 日本精品一区二区三区在线视频一 | 午夜视频久久久久一区 | 无人码一区二区三区视频| 国产高清视频一区二区| 成人欧美一区二区三区在线视频| 少妇激情一区二区三区视频| 国产精品无码AV一区二区三区| 亚洲av区一区二区三| 一区国严二区亚洲三区| 卡通动漫中文字幕第一区| 国产一区二区三区福利| 国产人妖视频一区在线观看| 国产成人一区二区三区电影网站| 亚洲av无一区二区三区| 国产精品久久无码一区二区三区网 | 香蕉视频一区二区| 国产福利电影一区二区三区,亚洲国模精品一区 | 熟女大屁股白浆一区二区| 亚洲日韩精品一区二区三区| 手机看片福利一区二区三区| 国产免费一区二区三区不卡 | 成人免费视频一区| 日韩av片无码一区二区不卡电影| 国产精品成人免费一区二区| 精品无码中出一区二区| 秋霞无码一区二区| 免费看无码自慰一区二区| 亚洲一区二区三区在线观看蜜桃| 99精品国产高清一区二区| 91精品一区二区三区在线观看| 无码人妻精品一区二区三区东京热 | 一区二区三区无码高清| 精品一区二区高清在线观看| 一区二区三区免费视频观看|