【发布时间】:2010-10-30 14:26:34
【问题描述】:
我有一个查询,它执行多个连接,并且在 WHERE 子句中有一些条件,我最终得到的结果基本上如下所示:
| userId | date | otherData |
|--------+------------+------------|
| 1 | 2008-01-01 | different |
| 1 | 2009-01-01 | info |
| 1 | 2010-01-01 | for |
| 2 | 2008-01-01 | each |
| 3 | 2008-01-01 | row |
| 3 | 2009-01-01 | here |
因此,从本质上讲,对于每个用户来说,过去会有一个或多个日期,未来会有 0 个或多个日期。
我需要以某种方式将数据集减少到每个用户一行,只选择具有最近通过日期的行。也就是说,无论添加什么神奇的 GROUP BY 或 HAVING 子句,上面的结果都会如下所示:
| userId | date | otherData |
|--------+------------+------------|
| 1 | 2009-01-01 | info |
| 2 | 2008-01-01 | each |
| 3 | 2009-01-01 | here |
【问题讨论】: