一、
我的答案:
select player_id , device_id from Activity group by player_id having min(event_date)
分析原因
group by和 min()、max() 和group by 在一起用的时候,此时会发现获取到的数据不是
最大/最小的;
问题根源: group by 默认返回每一组的第一条数据(每一组的排序都是按默认顺序排序的)
正确答案
select player_id,device_id
from activity
where
(player_id,event_date) in
(select player_id,min(event_date) from activity group by player_id)
二、SUM()在group by中的使用
当与group by 子句组合时,SUM函数计算GROUP BY子句中指定的每个分组的综合
三、sum和if也可以实现统计
sum(if(xx,1,0))