合并记录以显示开始日期和结束日期 SQL
Combine records to show start date and end date SQL
只是需要一些帮助来解决我遇到的问题。
基本上,我有一组数据示例如下:
+----------+------------+-----------+
| Class ID | Start date | End date |
+----------+------------+-----------+
| 12345 | 1-Jan-21 | 2-Jan-21 |
| 12345 | 3-Jan-21 | 4-Jan-21 |
| 12345 | 5-Jan-21 | 6-Jan-21 |
| 12345 | 7-Jan-21 | 8-Jan-21 |
| 67890 | 17-Jan-21 | 25-Jan-21 |
| 67890 | 25-Jan-21 | 26-Jan-21 |
| 67890 | 26-Jan-21 | 31-Jan-21 |
+----------+------------+-----------+
我想将具有相同 class ID 的行分组,但只在一行中显示最短开始日期和最长结束日期。喜欢下面的table:
+----------+------------+-----------+
| Class ID | Start Date | End Date |
+----------+------------+-----------+
| 12345 | 1-Jan-21 | 8-Jan-21 |
| 67890 | 17-Jan-21 | 31-Jan-21 |
+----------+------------+-----------+
如何查询?
谢谢!
您可以使用聚合:
select class_id, min(start_date), max(end_date)
from t
group by class_id;
只是需要一些帮助来解决我遇到的问题。
基本上,我有一组数据示例如下:
+----------+------------+-----------+
| Class ID | Start date | End date |
+----------+------------+-----------+
| 12345 | 1-Jan-21 | 2-Jan-21 |
| 12345 | 3-Jan-21 | 4-Jan-21 |
| 12345 | 5-Jan-21 | 6-Jan-21 |
| 12345 | 7-Jan-21 | 8-Jan-21 |
| 67890 | 17-Jan-21 | 25-Jan-21 |
| 67890 | 25-Jan-21 | 26-Jan-21 |
| 67890 | 26-Jan-21 | 31-Jan-21 |
+----------+------------+-----------+
我想将具有相同 class ID 的行分组,但只在一行中显示最短开始日期和最长结束日期。喜欢下面的table:
+----------+------------+-----------+
| Class ID | Start Date | End Date |
+----------+------------+-----------+
| 12345 | 1-Jan-21 | 8-Jan-21 |
| 67890 | 17-Jan-21 | 31-Jan-21 |
+----------+------------+-----------+
如何查询?
谢谢!
您可以使用聚合:
select class_id, min(start_date), max(end_date)
from t
group by class_id;