回答

收藏

计算列日期范围内每个日期的行数

技术问答 技术问答 322 人阅读 | 0 人回复 | 2023-09-13

我有一张数据如下的表  
# L/ {2 P9 _1 A) f4 L3 KGroup       Start Date        End DateA      A     A      B      ETC我想生成一个可以每天计数的视图,就像这样
9 M% I+ y3 V0 QGroup       Date        CountA        A       01/02/01            2A       A     B       我正在使用Oracle 9,对如何处理这个问题一无所知,正在寻找任何让我开始的想法。: ~3 M) t3 K2 s% u9 V6 U) X  @
注:生成用于保存日期的手表是不现实的,因为最终产品必须细分为几分钟。1 n5 V$ w+ G& ~; X! }/ A2 i/ m) q
                                                               
% O' m! Z) f. T    解决方案:                                                               
% ?7 f9 Z; `6 C8 q9 |                                                                通常,我用数字表来解决这样的问题:  {# |5 J/ D4 n: Z- h
WITH Dates AS  SELECT DateAdd(d,Numbers.Number - 1/1/2001AS Date    FROM Numbers    WHERE Numbers.Number BETWEEN 1 AND 100000 -- Arbitrary date range)SELECT GroupData.Group,Dates.Date,COUNT(*)FROM DatesLEFT JOIN GroupData    ON Dates.Date BETWEEN GroupData.StartDate AND GroupData.EndDateGROUP BY GroupData.Group,Dates.DateORDER BY GroupData.Group,Dates.Date
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则