SELECT SUM(orders.quantity) AS num, fName, surname
FROM author
INNER JOIN book ON author.aID = book.authorID;
我不断收到错误消息:“您试图执行不包含指定表达式“ fName”的查询作为聚合函数的一部分。我该怎么办?
最佳答案
该错误是因为fName
包含在SELECT
列表中,但没有包含在GROUP BY
子句中,并且不是聚合函数(Count()
,Min()
,Max()
,Sum()
等)
您可以通过在fName
中包含GROUP BY
来解决该问题。但是,您将在surname
上遇到同样的问题。因此,将它们都放在GROUP BY
中:
SELECT
fName,
surname,
Count(*) AS num_rows
FROM
author
INNER JOIN book
ON author.aID = book.authorID;
GROUP BY
fName,
surname
注意我在需要
Count(*)
的地方使用了SUM(orders.quantity)
。但是,orders
不包含在查询的FROM
部分中,因此必须先包含它,然后才能Sum()
它的一个字段。如果您有可用的Access,请在查询设计器中构建查询。它可以帮助您了解哪些功能是可能的,并应用正确的Access SQL语法。
关于sql - “您试图执行不包含指定的聚合函数的查询”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19430500/