我有一个充满“奖励收件人”的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
我很乐意提到一个已经被问到的问题,但我对“类似问题”侧栏上的大部分语言都不熟悉。
非常感谢!
答案 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"