什么是为Access编写SQL查询的方法,它将按特定标准进行分组,然后在组内按不同标准进行排序,但未使用分组?例如,假设我有一个表叫tblObjects,与列:SQL组按特定标准排序,然后按不同标准在组内进行排序
autoID name color shape weight height
我想不重复的颜色对象的列表来结束,而选择每个色组中最高的对象。如果存在颜色相同,高度相同的物体,请选择最重的物体。
我想我可以按颜色分组,按照高度排序,然后按重量排序,然后截断为1.这应该消除所有颜色重复,并根据我的标准挑选每种颜色的“代表”。
研究这里后,我能集团通过与代码:
SELECT autoID, name, color, shape, weight, height
FROM tblObjects INNER JOIN(SELECT
color, COUNT(*) AS NumberSameColor
FROM tblObjects
GROUP BY color) AS tblGroups ON tblObjects.color = tblGroups.color;
,但是当我尝试ORDER BY height, weight
我得到一个错误,说我想使用的命令列不是一部分聚合。如果我在查询结尾处放置了“order by”语句,它将撤消这些组以支持排序。 如何解决此限制以获得我需要的结果?
我看到我其实需要这个数,所以我甚至需要聚合?我错过了一个更简单的方法来解决这个问题吗?
这很好。谢谢。你能解释发生了什么,意思是,为什么它有效?令我困惑的部分是where子句中的“o.autoid = ”。 – ASignor