查找 ID 在数据集中出现的第一个和最后一个日期 SQL

Find the first AND last date that an ID occured in dataset SQL

我有一个非常大的数据集,其中包含超过 100 万行和超过 70 列。该数据集包含有关组织延期交货的数据。每天都会制作快照,所有延期交货的订单都会添加到数据集中。我想知道数据集中出现 OrderID 的第一个日期是什么时候,最后一个日期是 OrderID 出现的时间。所以我会知道订单何时作为延期交货以及何时作为延期交货被移除。为了使我的问题更清楚,我将通过举例来解释它。在下面的 table 中,我有包含 OrderID 的列和包含 SnapShotDate 的列。

+---------+--------------+
| OrderID | SnapShotDate |
+---------+--------------+
|    1234 | 01/01/2020   |
|    1111 | 01/01/2020   |
|    1122 | 01/01/2020   |
|    1234 | 01/02/2020   |
|    1111 | 01/02/2020   |
|    1234 | 01/03/2020   |
|    1234 | 01/04/2020   |
+---------+--------------+

有没有人知道如何在视图中获得以下结果?:

+---------+-------------------+------------------+
| OrderID | FirstDateOccuring | LastDateOccuring |
+---------+-------------------+------------------+
|    1234 | 01/01/2020        | 01/04/2020       |
|    1111 | 01/01/2020        | 01/02/2020       |
|    1122 | 01/01/2020        | 01/01/2020       |
+---------+-------------------+------------------+

我只是不知道从哪里开始。我基本上必须检查数据集中第一次出现 orderID 的时间以及数据集中最后一次出现 orderID 的时间。

如果您有任何解决方案或信息可以指导我朝着正确的方向前进,我将非常感激。如果我对问题的描述有不清楚的地方,也请告诉我。

只需做一个GROUP BY。使用 MIN()MAX() 获取第一个和最后一个日期。

select OrderID,
       MIN(SnapShotDate) as FirstDateOccuring,
       MAX(SnapShotDate) as LastDateOccuring 
from tablename
group by OrderID