期望的结果: 我想获得每组最早的第二个日期。
当前: 我得到每个小组的最早日期
查询:
select * from
(select * from profile_match
where match_available_on is not null
order by profile_id asc, match_available_on asc)
as P1
group by P1.profile_id
示例:Link
从示例中,我想得到:
我希望查询不会使用特定的profile_id(1或2)进行硬编码,因为我的实际数据有很多profile_id。谢谢你们!
答案 0 :(得分:1)
此查询将为您提供所需的结果:
select t.profile_id, min(t.match_available_on )
from profile_match t
inner join (
select profile_id, min(match_available_on) match_available_on
from profile_match
group by profile_id
) q
on t.profile_id = q.profile_id
and t.match_available_on > q.match_available_on
group by t.profile_id;
通过查找分钟match_available_on
,我们可以对其进行范围连接,并选择最小连接值。这不会有惊人的表现,但它会完成工作。
对于只有一个可用日期的个人资料,它不会返回一行,因为没有“第二早期”。