Mysql分组查询加上序号

今天老板让我删除数据库中多余的数据
要求:
每个用户只保留当天的前四条记录
最开始只是用userid进行了分组
但是怎么再用时间进行分组呢
最开始我实在when后面加上and条件
但是发现结果不对
删掉之后就可以了

	select id  from
(
	SELECT
    @r:= case when @type=a.userid and @date=DATE_FORMAT(starttime,'%Y-%m-%d')   then @r+1 
							#when @data=DATE_FORMAT(starttime,'%Y-%m-%d') then @r+1 
							else 1 end as rowNum,
    @type:=a.userid as userid,
		@date:=DATE_FORMAT(starttime,'%Y-%m-%d') as time,
    a.id
from
   ( SELECT * FROM explore201909 where boxid=72805 ORDER BY userid,starttime) a ,(select @r:=0 ,@type:=0,@date='') b)c where c.rowNum>4

注意:when 只要执行下面的就不会执行,所以尽量范围从小到大

你可能感兴趣的:(Mysql分组查询加上序号)