首先,我们需要先对21年8月份进行表的筛选,代码如下:

select * from question_practice_detail 
where month(date)=8 and year(date)=2021

接着,我们需要从上述21年8月份的表中,按device_id分组,统计总用户数和练习过题目的总次数,代码如下:

select
	count(distinct device_id) as x,
	count(question_id) as y
from
	(select * from question_practice_detail
	where month(date)=8 and year(date)=2021) as a
group by device_id

其中,group by device_id按device_id进行分组,count函数对每个device_id分组进行计数,distinct表示统计唯一的device_id字段。 最后,我们可以对上表进行一个求和统计,代码如下:

select
    sum(b.x) as did_cnt,
    sum(b.y) as question_cnt
from
    (select
        count(distinct device_id) as x,
        count(question_id) as y
    from
        (select
            *
        from 
            question_practice_detail
        where 
            month(date)=8 and year(date)=2021) as a
    group by device_id) as b;