小编典典

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

sql

我在sql表中有5列,我需要全部5列,但要对3列进行不同的操作

需要返回对三列进行不同操作的所有列

如何做到这一点?

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

在这里,我通过使用以下查询在三列上应用了distinct,从而获得了上表的所有distinct结果。但是我需要这三列中的不同之处,还需要选择上下文列而不在Context列上应用Distict

从“表名”组中按“时间戳记,名称,状态”选择不同的时间戳,名称,状态

改写我的问题:

我需要从上表中选择唯一的列。这里仅将unquie列选择视为Timestamp,Name,State

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

阅读 162

收藏
2021-04-15

共1个答案

小编典典

可以按3分组,但必须在其他两个上使用某种类型的汇总函数,例如min或max

select col1, col2, col3, max(col4), min(col5) 
from tbl 
group by col1, col2, col3
2021-04-15