我被告知我不能在一个MySQL Query中拥有GROUP BY和ORDER BY。下面是该查询的简化版本 -在一个查询中同时拥有GROUP BY和ORDER BY
SELECT n.colorName, n.colorComp, n.colorID, SUM(n.gallons) AS TotalGallons
FROM netTran n, Store m, Product p
WHERE ((n.store = m.store) and m.state = "FL")
AND ((n.salesNbr = p.salesNbr) AND (p.intExt = "EXTERIOR" OR p.intExt = "INT/EXT"))
AND ((n.clrnt1 = "L1") AND (n.clrnt1 = "R3"))
GROUP BY n.colorComp, n.colorID
ORDER BY TotalGallons DESC;
有人告诉我一个具有与GROUP BY的ORDER BY会给我不同的结果,并认为只有这样的ORDER BY会的工作是,如果主查询嵌套在
SELECT * FROM
(query)
ORDER BY TotalGallons DESC;
这是正确的吗?
不,这是不正确的。 'ORDER BY'在'GROUP BY'后面工作得很好;它会以不同的顺序给你相同的结果;如果你也有一个限制,你将得到不同结果的唯一方法。事实上,如果你想要一些“总加仑数最多的三种颜色”,你会希望第一个查询也具有“极限3”。 – Uueerdo