我在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
可以按3分组,但必须在其他两个上使用某种类型的汇总函数,例如min或max
select col1, col2, col3, max(col4), min(col5) from tbl group by col1, col2, col3