我有一个具有以下结构的表:
Column A: text
Column B: datetime
Column C: text
Column A
具有三个可能的值: ADD,DELETE和OTH
我要做的是按Column C
对记录进行分组,并获得最小日期时间 IF Column A
是 ADD或OTH
例如,如果表是
A B C
DELETE 2013-Jul ABC
ADD 2014-Jul DEF
OTH 2015-Jul ABC
OTH 2016-Jul DEF
ADD 2017-Jul ABC
我想得到类似的东西
Group Min_Date Type
ABC 2015-Jul OTH
DEF 2014-Jul ADD
是否可以通过GROUP或PARTITION来做到? 任何提示都欢迎!
答案 0 :(得分:1)
使用聚合函数
select C,min(B) as Min_Date from tabl1
where A in ('OTH','ADD')
group by C
由于OP是最近更改的输出,因此请在下面的查询中使用
select distinct * from t where B in ( select min(B) from t t1
where t1.C=t.c
and t1.A in ('OTH','ADD')
)
http://sqlfiddle.com/#!15/57770/15
a b c
ADD 2014-07-01 DEF
OTH 2015-07-01 ABC