首页 > 解决方案 > 在 SQL Server 中对一种类型的数据进行分组

问题描述

我必须将某些类型的数据分组到视图中的一行。我不知道如何在 SQL Server 中处理这种类型的结果。

表数据:

| Process   | StartDate | EndDate      |
+-----------+-----------+--------------+ 
| A1        | 05-06-2018|     NULL     | 
| A2        |    NULL   | 08-03-2018   | --Here A1 & A2 are same process
| B1        | 03-02-2018|     NULL     |
| C1        | 07-06-2018|     NULL     | 
| C2        |    NULL   | 09-03-2018   | --Here C1 & C2 are same process

期望的输出:

| Process   | StartDate | EndDate      |
+-----------+-----------+--------------+
| A         | 05-06-2018|  08-03-2018  | 
| B         | 03-02-2018|     NULL     | 
| C         | 07-06-2018|   09-03-2018 |

标签: sqlsql-serverdatabasesql-server-2008group-by

解决方案


您可以使用聚合:

select left(process, 1) as process, max(startdate) as startdate), max(enddate) as enddate
from data
group by left(process, 1);

推荐阅读