题解 | #统计复旦用户8月练题情况#

统计复旦用户8月练题情况

https://www.nowcoder.com/practice/53235096538a456b9220fce120c062b3

select t00.device_id as device_id , t00.university as university,
       ifnull(t00.question_cnt,0) as question_cnt,
       ifnull(t01.right_question_cnt,0) as right_question_cnt
from (select t.device_id as device_id, t.university as university ,
count(*) as question_cnt
from user_profile t
left join (select  device_id, result, date
            from question_practice_detail
            where STR_TO_DATE(DATE_FORMAT(date, '%Y-%m-01'), '%Y-%m-%d') = '2021-08-01'
            ) t1
on t.device_id = t1.device_id
group by t.device_id , t.university ) t00
left join (
    select t.device_id as device_id, t.university as university ,
           count(*) as right_question_cnt
            from user_profile t
            left join (select  device_id, result, date
            from question_practice_detail
            where STR_TO_DATE(DATE_FORMAT(date, '%Y-%m-01'), '%Y-%m-%d') = '2021-08-01' 
            ) t1
            on t.device_id = t1.device_id
            where t1.result = 'right'
            group by t.device_id , t.university
)t01
on t00.device_id = t01.device_id  
where t00.university = '复旦大学'

MySQL的去空函数,IFNULL(字段名,0),类似Oracle的NVL函数

MYSQL 不能像Oracle一样用trunc截断日期,可用STR_TO_DATE(DATE_FORMAT(date, '%Y-%m-01'), '%Y-%m-%d') = '2021-08-01'

全部评论

相关推荐

03-12 00:30
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务