與此問題類似:MySQL 5.7 group by latest recordMySQL 5.7如何使用GROUP BY進行排序?
我不確定如何在5.7中正確執行此操作。也有第2類的可能性。 5.6工作查詢,我試圖在5.7複製:
SELECT id FROM test
GROUP BY category
ORDER BY sort1 DESC, sort2 DESC
ID並不總是最高的,所以MAX(ID)不起作用。
展望上面的鏈接,對於單排序的解決方案應該是:
SELECT t1.*
FROM test t1
INNER JOIN (
SELECT category, max(sort) AS sort FROM test GROUP BY category
) t2 ON t2.category = t1.category AND t2.sort = t1.sort
但如何將它與2排序工作嗎?
不明白你爲什麼使用沒有聚合函數的組。你想達到什麼目的? – Lamar
如果你不使用聚合,爲什麼使用'GROUP BY'?如果您需要聚合一列,則只能使用「GROUP BY」。這甚至不會在任何其他dbms上運行。 – Eric
@lamar&eric,你們是對的。我已更新查詢。我想不出一個很好的解決方案,除了創建一個計算排序,比如SELECT(sort * 1000 + sort2)作爲sort_score –