0

我有一个充满“获奖者”的 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

我很高兴被提及一个已经提出的问题,但我不熟悉“类似问题”侧边栏上的大部分语言。

谢谢!

4

2 回答 2

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,因此可以正确排序。

于 2013-07-08T16:38:40.953 回答
0

像这样(ISO SQL):

CREATE VIEW CumulativeAwards As
    SELECT Category, "Date", COUNT(*) As "Total Awards Given"
    FROM   "Award Recipients"
    GROUP BY Category, "Date"
于 2013-07-08T16:39:21.367 回答