查找 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
我有一个非常大的数据集,其中包含超过 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