我试图在一个列表中找到最早的日期,但我只想考虑每个可能“人”的最近条目。
例如,考虑以下数据集(日期是varchar 103,即dd/mm/yyyy)
+--------+------+------------+
| Person | Shop | Date |
+--------+------+------------+
| A | X | 09/01/2017 |
+--------+------+------------+
| A | X | 12/01/2017 |
+--------+------+------------+
| A | Y | 12/01/2017 |
+--------+------+------------+
| B | X | 01/01/2017 |
+--------+------+------------+
| B | X | 13/01/2017 |
+--------+------+------------+
| B | Y | 11/01/2017 |
+--------+------+------------+
| C | X | 14/01/2017 |
+--------+------+------------+
| C | Y | 18/01/2017 |
+--------+------+------------+
| C | Y | 07/01/2017 |
+--------+------+------------+
如果我想找到每个“商店”的最小日期使用量(即MIN(DATE) GROUP BY Shop),那么我会得到X商店的01/01/2017和Y商店的07/01/2017。但是,在这两次访问中,访问者在稍后的日期来到了商店,因此我不想将这些日期视为“最老的最近”访问的一部分。
明确一下,我想知道每个客户最近访问的时间中,哪一个是最旧的。也就是说,有人最后一次访问商店的日期是什么,但自那以后就再没有回来。
我需要通过提取按商店分组的MAX(Date)的临时表进行操作,还是可以直接从这个数据集中获取X商店的12/01/2017和Y商店的11/01/2017的日期?
我需要以下结果
+------+------------+
| Shop | Date |
+------+------------+
| X | 12/01/2017 |
+------+------------+
| Y | 11/01/2017 |
+------+------------+
任何帮助都将不胜感激。