[英]SQL Select unique values by one column with the latest value by another column
[英]Select pairs of values with unique value in one column only (SQL)
我有4列,如下所示:
COL1 COL1_TIME COL2 COL2_TIME
A 09:20:00 E 09:35:00
A 09:20:00 F 09:36:00
A 09:20:00 G 09:40:00
A 09:20:00 H 09:59:00
B 09:25:00 E 09:35:00
B 09:25:00 F 09:36:00
B 09:25:00 G 09:40:00
B 09:25:00 H 09:59:00
C 09:30:00 E 09:35:00
C 09:30:00 F 09:36:00
C 09:30:00 G 09:40:00
C 09:30:00 H 09:59:00
D 09:50:00 H 09:59:00
我必须从列COL1和COL2中选择唯一的值对。 要找到一对,您应该在COL2_TIME中将最近的时间用于COL1_TIME。
所以A的最短时间是E.对于B,它的F - E已经被采用等。
结果应如下所示:
A E
B F
C G
D H
有任何想法吗?
如果我理解正确,你可以这样做:
select t.*
from (select t.*, row_number() over (partition by col3 order by col4) as seqnum
from t
) t
where seqnum = 1;
这保证了第3列中的值是唯一的。 您可以在第1列中包含重复项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.