当我尝试使用以下SELECT语句时:
SELECT [lots of columns]
FROM Client, Customer, Document, Group
WHERE [some conditions]
GROUP BY Group.id
SQL Server抱怨我选择的列不是GROUP BY语句的一部分,也不是聚合函数。我使用GROUP BY错了吗?我该怎么用呢?
答案 0 :(得分:2)
要返回group by
字段的所有单次出现以及相关的字段值,请编写如下查询:
select group_field,
max(other_field1),
max(other_field2),
...
from mytable1
join mytable2 on ...
group by group_field
having count(*) = 1;
答案 1 :(得分:1)
是的,您正在错误地使用GROUP BY。使用GROUP BY的关键是使用聚合函数。如果您没有聚合函数,则可能需要SELECT DISTINCT。
SELECT DISTINCT
col1,
col2,
-- etc
coln
FROM Client
JOIN Customer ON ...
JOIN Document ON ...
JOIN [Group] ON ...
WHERE ...
答案 2 :(得分:0)
我的第一个猜测是问题是你有一个名为Group的表,我认为这是SQL中的保留字。尝试使用''
包装组名称答案 3 :(得分:0)
您希望按所选的所有列进行分组,而不是聚合函数。
SELECT ProductName, ProductCategory, SUM(ProductAmount)
FROM Products
GROUP BY ProductName, ProductCategory
这将为您提供产品名称和类别的结果,以及该组所有聚合子记录中产品数量的总和。