返回SQL表中多列不同的所有列

usr*_*986 -4 sql sql-server select distinct

我在sql表中有5列,我需要所有5列作为输出但在三列上具有不同的操作

需要在三列上返回具有不同操作的所有列

如何实现这一目标?

Timestamp                   Name    State     Context
2013-06-24 11:51:03.2550000 tst1    Started     E1
2013-06-24 11:56:03.2550000 tst1    Completed   E1
2013-06-24 11:51:03.2550000 tst1    Started     E1
2013-06-24 11:56:03.2550000 tst1    Completed   E1
2013-06-24 11:45:03.2550000 tst1    Started     E1
2013-06-24 11:50:03.2550000 tst1    Completed   E1
2013-06-24 11:45:03.2550000 tst1    Started     E1
2013-06-24 11:50:03.2550000 tst1    Completed   E1
Run Code Online (Sandbox Code Playgroud)

在这里,我通过使用下面的查询在三列上应用distinct来获得上表的所有不同结果.但我需要这三个列的不同之处还需要选择上下文列而不在Context列上应用distict

SELECT DISTINCT时间戳,名称,状态FROM TableName group by Timestamp,Name,State

改述我的问题:

我需要从上表中选择唯一的列.这里只有unquie列选择被视为时间戳,名称,状态

Timestamp                   Name    State     Context
2013-06-24 11:51:03.2550000 tst1    Started     E1
2013-06-24 11:56:03.2550000 tst1    Completed   E1
2013-06-24 11:45:03.2550000 tst1    Started E1
2013-06-24 11:50:03.2550000 tst1    Completed   E1
Run Code Online (Sandbox Code Playgroud)

pap*_*zzo 7

可以按3分组,但必须使用某些类型的聚合函数,如min或max,另外两个

select col1, col2, col3, max(col4), min(col5) 
from tbl 
group by col1, col2, col3
Run Code Online (Sandbox Code Playgroud)