我被告知我不能在一個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