如图所示,use_id 是每个用户的编号,一共有300个用户;begin_time_h指用户打开设备的整点时间段;num指一年来用户在某个整点时间段打开设备的累计次数。
我的最终目的是为了查看在每个整点时间段内(0点、1点......24点)发生次数最多的有多少用户,即希望知道num最大值对应在0点的有多少用户,num最大值对应在1点有多少用户,num最大 值对应在2点的有多少用户等等。
我研究了网上现有的方法都是需要新建一张临时表,但是我并没有新建表的权限,所以想请教各位大神,能在不新建表仅使用Mysql的查询语句的情况下实现我的最终目的吗~
照着你的描述写的sql:
SELECT count(1),t.begin_time_h FROM (
SELECT user_id,begin_time_h FROM user_time where CONCAT(user_id,",",num) in (SELECT CONCAT(user_id,",",MAX(num)) FROM user_time GROUP BY user_id)) t
GROUP BY t.begin_time_h;