在聚合和分组表达式中,SELECT子句只能包含聚合和分组表达式

时间:2013-12-07 13:30:53

标签: sql

我是SQL的新手,我需要在学校进行这项练习:“列出评价最高等级的评论(或评论)的客户名称,CD标题和评级”。

数据库有5个表:

CDTitles, Customers, Reviews, OrderLines, Orders

客户的名称位于Customers表(2列:“firstname”和“lastname”)中,CDTitles表中的CD标题具有“title”和“rating”在评论表

这就是我得到的:

SELECT MAX(rating), firstname, lastname, title 
FROM Reviews, Customers, CDTitles
WHERE Reviews.customerID = Customers.customerID 
AND Reviews.catalogNumber = CDTitles.catalogNumber;

虽然我不断收到此错误:在聚合和分组表达式中,SELECT子句只能包含聚合和分组表达式。 [Select clause = ,firstname]。

任何帮助都会非常感激。

PS:我需要使用Microsoft Webmatrix。

1 个答案:

答案 0 :(得分:0)

您已使用聚合函数,但未指定分组。

添加GROUP BY子句:

SELECT
    MAX(rating), firstname, lastname, title
FROM Reviews, Customers, CDTitles
WHERE Reviews.customerID = Customers.customerID
AND Reviews.catalogNumber = CDTitles.catalogNumber
GROUP BY firstname, lastname, title -- Added this line

作为一种风格问题,你应该表达现代风格的连接:

SELECT
    MAX(rating), firstname, lastname, title
FROM Reviews
JOIN Customers ON Reviews.customerID = Customers.customerID
JOIN CDTitles ON Reviews.catalogNumber = CDTitles.catalogNumber
GROUP BY firstname, lastname, title