之前开发中经常遇到逻辑比较复杂的查询sql语句,特别事分组查询取最大值的那条数据,但是普通group by并不能得到正确结果。每次解决都没有记住怎么解决的,再次经过疯狂的蹂躏一番度娘之后,终于能够整理出来了。
这里使用到的伪rownum是利用定义变量@rn,以每组相同字段值最为条件判断,相同则@rn++,不同则@rn:=1,可以达到类似
红色方框中为查询出每组最大值的那一条数据,那么我们只需要where rn=1 就可以查询出每组最大数据的那一整条数据了。
直接上sql:
SET @rn=0;SET @last_login=0;SET @rn=0;SET @last_timelogin=