累积SQL表

时间:2013-07-08 16:33:29

标签: sql view qlikview

我有一个充满“奖励收件人”的Excel文件,所以像:

Name     | Date       | Category
John       May-1        Fishing
Mary       May-2        Swimming
Sue        Jun-6        Fishing

我使用这个excel表作为名为“QlikView”的SQL可视化程序的输入。以上是一个非常简化的示例,列具有不同的名称。

我现在想制作一个累积数据的虚拟表

Category   | Date      | Total Awards Given
Fishing      May-1       1
Fishing      Jun-6       2
Swimming     May-2       1

我很乐意提到一个已经被问到的问题,但我对“类似问题”侧栏上的大部分语言都不熟悉。

非常感谢!

2 个答案:

答案 0 :(得分:1)

由于您要求SQL解决方案,这是ANSI SQL:

select category, 
       date,
       count(*) over (partition by category) as total_awards,
       count(*) over (partition by category order by date) as total_awards_so_far,
from the_table
order by category, date;

这假定Date(列的可怕的名称)的数据类型为date,因此可以正确排序。

答案 1 :(得分:0)

像这样(ISO SQL):

CREATE VIEW CumulativeAwards As
    SELECT Category, "Date", COUNT(*) As "Total Awards Given"
    FROM   "Award Recipients"
    GROUP BY Category, "Date"