题解 | #21年8月份练题总数#
21年8月份练题总数
https://www.nowcoder.com/practice/b8f30b239b454ed490367b53ea95607d
-- 想要了解2021年8月份所有练习过题目的总用户数和练习过题目的总次数
-- 这里可以看出date有设置条件: 2021-08
-- 先看, 这里没有详细介绍字段, 也不确定是否是需要进行去重处理
-- count 函数是必须的
最后测试的SQL脚本如下:
select count(distinct device_id) as did_cnt, count(question_id) as question_cnt from question_practice_detail where left(date, 7) = '2021-08' ;
第一个点, 如何将date获取年月的部分进行判断, 这里我选择了使用 left
函数, 当然还有其他方法, 可以进行适当补充;
第二个点, 需求没有明确是否做一些去重操作, 就需要我们根据自己的经验进行相应的操作.
也可以这样理解, 对于这个时间段, 有多少个用户可以理解成有多少台设备(也就是这里的device_id), 注意这里是需要进行去重的, 比如一个用户使用他的设备在这个时间段进行了多次练习, 就认为他是一个用户, 对吧, 这也和我们的逻辑一致, 也就是进行去重操作.
对于练习题目次数来说, 也就是不管你这段时间这道题目练习了多次, 那就认为是多次, 也就是说, 只要你看了这道题目, 操作了这道题目, 提交了这道题目, 不管是几次对, 几次错, 都会认为是练习次数, 所以这里没有进行去重操作.
觉得这道题蛮有意思, 就记录一下, 刷题刷题, 就爱刷题~