我有一个查询,它执行了许多连接,并且在 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 个或多个日期。
我需要以某种方式将数据集减少到每个用户一行,只选择最近通过的行 date。也就是说,无论添加什么魔法GROUP BY
或HAVING
子句,上面的结果将如下所示:
| userId | date | otherData |
|--------+------------+------------|
| 1 | 2009-01-01 | info |
| 2 | 2008-01-01 | each |
| 3 | 2009-01-01 | here |