【发布时间】:2023-04-04 00:46:01
【问题描述】:
我使用下面的查询,但它显示了一些重复的项目。所以我使用了group这个函数,但是它不起作用。
SELECT p.productId, p.productName, p.catId, p.subCatId, p.productType,
p.modelNo, p.picUrl, p.color, p.theme, p.productPrice, p.discountedPrice,
p.quantity, p.details, p.mainPageDisplay, p.productPageDisplay,
s.subCatId AS Expr1,
s.subCatName, s.catId AS Expr2,
s.rank, s.subCatName AS Expr3
FROM (products p INNER JOIN
subCategories s ON p.catId = s.catId)
WHERE (p.color = 'red') group By p.productName
这个查询工作正常,但是当我添加group by 时它就不能工作了。
【问题讨论】:
-
使用 ORDER BY 子句 GROUP BY FOR FUNCITONS MIN MAX 等
-
group by 仅适用于聚合函数或由其分组的列..
-
当您使用
GROUP BY时,所有列都需要在GROUP BY中或包含在聚合中 - 因此您需要告诉我们/SQL Server 您希望对每个列执行的操作不是productName- 我们应该为每一列取MAX()或MIN()值吗? -
你能举个重复项目的例子吗?
-
所以,正如我在第一条评论中所说 - 您需要告诉我们如何为每个 不是
productName的列选择适当的值。您需要定义一个聚合,或者,如果您想说“我想要第一行/最后一行的值”,您需要告诉我们使用什么顺序来定义第一行或最后一行。
标签: sql sql-server group-by