我想要做一個單一的SELECT
查詢,該查詢返回每個ID的最新2條記錄(按日期排序)。對於每個給定的ID,日期值並不總是唯一的,所以我必須處理它(查看ID = 1,我只想得到2條記錄,儘管它有來自同一日期的2條記錄.. 。)每個ID的最後2條記錄(日期)的sql查詢
例如,此表:
+------+------------+-------+
| ID | Date | Value |
+------+------------+-------+
| 1 | 2010 | 33 |
| 1 | 2009 | 23 |
| 1 | 2009 | 41 |
| 1 | 2003 | 55 |
| 1 | 2003 | 24 |
| 2 | 2009 | 52 |
| 2 | 2008 | 23 |
| 2 | 2007 | 39 |
| 2 | 2006 | 22 |
|
|
| ... | ... | ... |
+------+------------+-------+
我將有望獲得:
+------+------------+-------+
| ID | Date | Value |
+------+------------+-------+
| 1 | 2010 | 33 |
| 1 | 2009 | 23 |
| 2 | 2009 | 52 |
| 2 | 2008 | 23 |
| ... | ... | ... |
+------+------------+-------+
我使用這個腳本:
SELECT ID, Date, Value
FROM MyTable
WHERE Date >= IFNULL((SELECT Date
FROM MyTable AS T2
WHERE T2.ID = MyTable.ID
ORDER BY Date DESC
LIMIT 1 OFFSET 2),
0)
如何顯示所需的結果?
感謝您的快速響應! 但我可以解決這個問題,而不使用變量? 我可以找到更簡單的解決方案嗎? –