仍需成长啊,干自己认为的想干的事情的时候都有很大的挫败,那做别人分配给你的你自然会更难受些,尤其是你不懂的时候,所以加油,好好看待挫折和未成长的路啊!!
一、题目相关内容
1)相关的表和题目
2)帮助理解题目的示例,提供返回结果的格式
二、初步的理解
思路不够好,下面是我尝试用where in的我认为的好的子句,但是想完这部分想了下其他的内容发现还是又很多不通的地方,我认为实在是想不到了,还是去看题解了.
(Select player_id,event_date from activity where event_date in min(event_date)+1 Group by player_id)
三、题解展示和分析
1.我分析的是也用了where in的题解,如下。
1)先分析where in这部分
我忘记了其实后面还要用select语句,我的整个语句就是自己想当然了。
where后面是你是一个字段或者多个字段,in后面是通过select查询出很多的前面字段的可能性,通过select ? from这里问号部分进行字段的筛选,后面自然加上group by。
然后date(event_date+1) 我没想到是这样的形式,所以需要记住日期的加减需要date()函数。
2)分析主句的select ? from的问号部分
这个distinct我是没想到的,因为很多的用户完了多种游戏的,需要取不重复的。下面是没有distinct的结果。
但是好像第二个算总数的时候加上就行,前面的好像不会重复。下面是运行结果
好吧,还是不对,提交才有错误,而且把这整个句子赋值进去就是不行,还是看其他的题解
2.找运行时间最短的一个题解
1)通过连接使第一次登录时间和第二次登录时间在一条记录上
然后因为是左连接,所以on后面的,不满足dateddiff(a.event_date,p.login)=1的记录还是会有的
2)所以select ??from的问号部分需要把值为null的记录的值为0算平均数。
四、总结
忘记左连接了,datediff()之前用过也忘了,且没耐心也是没想透,明天还是尽力总结一波吧,感觉现在很多点漏了,也没理解清楚,我回去反思一下,明天尽力写总结的文章,新题看明天写不写。但是后天一定写,果然去玩了会,脱离下这个苦海回来人就很正常啊,所以要学会换脑子啊!!!