-- 想要了解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), 注意这里是需要进行去重的, 比如一个用户使用他的设备在这个时间段进行了多次练习, 就认为他是一个用户, 对吧, 这也和我们的逻辑一致, 也就是进行去重操作.

对于练习题目次数来说, 也就是不管你这段时间这道题目练习了多次, 那就认为是多次, 也就是说, 只要你看了这道题目, 操作了这道题目, 提交了这道题目, 不管是几次对, 几次错, 都会认为是练习次数, 所以这里没有进行去重操作.

觉得这道题蛮有意思, 就记录一下, 刷题刷题, 就爱刷题~