我已閱讀訂閱前發生的分組,有沒有什麼辦法可以在分組之前先進行排序,而無需將整個查詢包裹在另一個查詢中,只需執行此操作?在使用GROUP BY之前對數據進行排序?
比方說,我有這樣的數據:
id | user_id | date_recorded
1 | 1 | 2011-11-07
2 | 1 | 2011-11-05
3 | 1 | 2011-11-06
4 | 2 | 2011-11-03
5 | 2 | 2011-11-06
通常情況下,我必須做的,以這個查詢得到我想要的:
SELECT
*
FROM (
SELECT * FROM table ORDER BY date_recorded DESC
) t1
GROUP BY t1.user_id
但我不知道是否有更好的解決方案。
它是什麼你想達到什麼目的?你沒有集合函數('SUM(),AVG(),COUNT()'...),因此不需要'GROUP BY' –
如果你試圖按照日期排序,那麼通過user_id用戶「分組」在一起,這只是一個2部分「ORDER BY」操作。 –
只需將您的問題更改爲「在開始排序之前對數據進行排序」,以便它可以針對需要和有用 –