合并记录以显示开始日期和结束日期 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;