2020-05-11 17:02
门头沟学院 Java 清香的茉莉:我试着解释一下。自连接后可以主要看作四个字段aid、bid、adate、bdate.非等值连接保证了有序对《1,3》和《3,1》只能取《1,3》。分组之后,对某个员工E来说,假如他的adate是2000,它的bdate可能有很多对如1999、 1989...加了having限制后,如果员工E对应的b多余3就直接被过滤了。count(*)<3意味着比E入职晚的员工少于3(E可能是倒数第1~3),但是有入职越晚date越大,date值又是一个确定的数(即使同一时间内多个人入职),将所有的组的adate取min之后得到的一定是倒数第三个(取值范围-3~-1,date越大值越大)
0 点赞 评论 收藏
分享
关注他的用户也关注了: