我有一张数据如下的表 # 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