【发布时间】:2016-09-16 16:36:05
【问题描述】:
有人告诉我,我不能在一个 MySQL 查询中使用 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;
有人告诉我,使用 ORDER BY 和 GROUP BY 会给我带来不同的结果,并且 ORDER BY 起作用的唯一方法是主查询嵌套在
SELECT * FROM
(query)
ORDER BY TotalGallons DESC;
对吗?
【问题讨论】:
-
不,这是不正确的。
ORDER BY在GROUP BY之后工作得很好;它会以不同的顺序为您提供相同的结果;获得不同结果的唯一方法是,如果你也有一个 LIMIT。事实上,如果你想要一些“总加仑数最多的三种颜色”,你会希望第一个查询也有LIMIT 3。
标签: mysql sql group-by sql-order-by