我试图获得按年份和国家/地区分组的总销售额。这按预期工作:使用GROUP BY和OVER
SELECT Year, Country, SUM([Total Sales])
FROM Table
GROUP BY Country, Year;
然后,我必须比较每个国家对一年总销售额的贡献。我这样做:
SELECT Year, Country, SUM([Total Sales]),
SUM([Total Sales]) OVER(PARTITION BY Year)
FROM Table
GROUP BY Country, Year;
这给了我这个错误:
Column 'Table.Total Sales' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
您的第一句话是误导性的,因为您可以在不使用子查询的情况下合并窗口函数和聚合函数。 –