我想要做一个单一的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)
如何显示所需的结果?
感谢您的快速响应! 但我可以解决这个问题,而不使用变量? 我可以找到更简单的解决方案吗? –