题目链接:点击打开链接
题目大意:略。
解题思路:解决方案(2):自定义变量,这里初始化为 -1 而不是 NULL,是因为 NULL 不能用来比较 <> 或 !=,否则会出现结果离你的预想不一样。
AC 代码
-- 解决方案(1)
SELECT player_id, MIN(event_date) first_login
FROM Activity
GROUP BY player_id
-- 解决方案(2)
SELECT player_id, event_date first_login
FROM (SELECT IF(@item<>player_id, 1, 0) mark, @item:=player_id, player_id, event_date FROM (SELECT * FROM Activity ORDER BY player_id, event_date) rs, (SELECT @item:=-1) init) rs1
WHERE rs1.mark = 1