题意明确:

2021年8月份所有练习过题目的总用户数和练习过题目的总次数


问题分解:

  • 限定条件:2021年8月份,匹配date字段即可,匹配方法主要有三种:
    (1)like语法:date like "2021-08%"
    (2)year、month函数:year(date)='2021' and month(date)='08'
    (3)date_format函数:date_format(date, '%Y-%m')='2021-08';
  • 2:总用户数:count函数计数,因为用户有重复,所以需要distinct去重,即count(distinct device_id)
  • 3:总次数:count(question_id)即可

细节问题:

  • 表头重命名:as语法

完整代码:

select
    count(distinct device_id) as did_cnt,
    count(question_id) as question_cnt
from question_practice_detail
where date like "2021-08%"