-1

我对 Northwind 数据库进行了查询,Products Table如下所示

select * from Northwind.dbo.Products GROUP BY CategoryID我遇到了一个错误。我相信你也会遇到同样的错误。那么,我需要执行什么正确的语句来根据类别 ID 对所有产品进行分组。

编辑:这真的帮助理解了很多

http://weblogs.sqlteam.com/jeffs/archive/2007/07/20/but-why-must-that-c​​olumn-be-contained-in-an-aggregate.aspx

4

2 回答 2

4

您需要使用 Aggregate 函数,然后按任何非聚合列分组。

我建议阅读GROUP BY

于 2011-10-13T15:38:14.123 回答
3

如果您GROUP BY在查询中使用,则语句中的所有项目都SELECT必须包含在聚合函数中,例如Sum()Count(),否则它们也需要包含在GROUP BY子句中。

因为您正在使用SELECT *,所以这相当于在您的SELECT.

因此,要么将它们全部列出GROUP BY,尽可能对其余部分使用聚合函数,或者只选择CategoryID.

于 2011-10-13T15:38:57.243 回答