• 手把手带你学SQL—牛客网SQL 统计复旦用户8月练题情况


    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门 牛客网sql

    🥇作者简介:大家好我是 uu 给刚入门的sql的小伙伴带来一套sql 完整的入门基础。

    🥈个人主页:uu主页

    📑 推荐一款非常火的面试、刷题神器👉牛客网sql  

    觉得uu写的不错的话 麻烦动动小手 点赞👍 收藏⭐  评论📄

    今天给大家带来的刷题系列是: 统计复旦用户8月练题情况

                                 ​​ 

    题目介绍 :

    描述

    题目: 现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0.

    示例:用户信息表user_profile

    iddevice_idgenderageuniversitygpaactive_days_within_30
    12138male21北京大学3.47
    23214male复旦大学4.015
    36543female20北京大学3.212
    42315female23浙江大学3.65
    55432male25山东大学3.820
    62131male28山东大学3.315
    74321female26复旦大学3.69

    示例:question_practice_detail

    iddevice_idquestion_idresultdate
    12138111wrong2021-05-03
    23214112wrong2021-05-09
    33214113wrong2021-06-15
    46543111right2021-08-13
    52315115right2021-08-13
    62315116right2021-08-14
    72315117wrong2021-08-15
    ……

    根据示例,你的查询应返回以下结果:

    device_iduniversityquestion_cntright_question_cnt
    3214复旦大学30
    4321复旦大学00

    示例1

    输入:

    drop table if exists `user_profile`;
    drop table if  exists `question_practice_detail`;
    drop table if  exists `question_detail`;
    CREATE TABLE `user_profile` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `gender` varchar(14) NOT NULL,
    `age` int ,
    `university` varchar(32) NOT NULL,
    `gpa` float,
    `active_days_within_30` int ,
    `question_cnt` int ,
    `answer_cnt` int 
    );
    CREATE TABLE `question_practice_detail` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `question_id`int NOT NULL,
    `result` varchar(32) NOT NULL,
    `date` date NOT NULL
    );
    CREATE TABLE `question_detail` (
    `id` int NOT NULL,
    `question_id`int NOT NULL,
    `difficult_level` varchar(32) NOT NULL
    );
    
    INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4,7,2,12);
    INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学',4.0,15,5,25);
    INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2,12,3,30);
    INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6,5,1,2);
    INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8,20,15,70);
    INSERT INTO user_profile VALUES(6,2131,'male',28,'山东大学',3.3,15,7,13);
    INSERT INTO user_profile VALUES(7,4321,'male',28,'复旦大学',3.6,9,6,52);
    INSERT INTO question_practice_detail VALUES(1,2138,111,'wrong','2021-05-03');
    INSERT INTO question_practice_detail VALUES(2,3214,112,'wrong','2021-05-09');
    INSERT INTO question_practice_detail VALUES(3,3214,113,'wrong','2021-06-15');
    INSERT INTO question_practice_detail VALUES(4,6543,111,'right','2021-08-13');
    INSERT INTO question_practice_detail VALUES(5,2315,115,'right','2021-08-13');
    INSERT INTO question_practice_detail VALUES(6,2315,116,'right','2021-08-14');
    INSERT INTO question_practice_detail VALUES(7,2315,117,'wrong','2021-08-15');
    INSERT INTO question_practice_detail VALUES(8,3214,112,'wrong','2021-05-09');
    INSERT INTO question_practice_detail VALUES(9,3214,113,'wrong','2021-08-15');
    INSERT INTO question_practice_detail VALUES(10,6543,111,'right','2021-08-13');
    INSERT INTO question_practice_detail VALUES(11,2315,115,'right','2021-08-13');
    INSERT INTO question_practice_detail VALUES(12,2315,116,'right','2021-08-14');
    INSERT INTO question_practice_detail VALUES(13,2315,117,'wrong','2021-08-15');
    INSERT INTO question_practice_detail VALUES(14,3214,112,'wrong','2021-08-16');
    INSERT INTO question_practice_detail VALUES(15,3214,113,'wrong','2021-08-18');
    INSERT INTO question_practice_detail VALUES(16,6543,111,'right','2021-08-13');
    INSERT INTO question_detail VALUES(1,111,'hard');
    INSERT INTO question_detail VALUES(2,112,'medium');
    INSERT INTO question_detail VALUES(3,113,'easy');
    INSERT INTO question_detail VALUES(4,115,'easy');
    INSERT INTO question_detail VALUES(5,116,'medium');
    INSERT INTO question_detail VALUES(6,117,'easy');

    复制输出:

    3214|复旦大学|3|0
    4321|复旦大学|0|0

     

    代码解析:

    1. select
    2. t1.device_id,
    3. t1.university,
    4. sum(case when t2.result is not null then 1 else 0 end),
    5. sum(case when t2.result = 'right' then 1 else 0 end)
    6. FROM user_profile t1
    7. LEFT JOIN question_practice_detail t2
    8. ON t1.device_id = t2.device_id and MONTH(t2.date) = '08'
    9. where t1.university = '复旦大学'
    10. group by t1.device_id

     

     牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门 牛客网sql 

  • 相关阅读:
    客户管理系统(SSM版):查看交易明细
    在T3开发板上实现SylixOS最小系统(二)
    SpringBoot笔记之模板引擎
    9月8日作业
    Acwing.4382 快速打字(双指针)
    渗透测试信息收集方法和工具分享
    友思特应用 | 红外视角的延伸:短波红外相机的机器视觉应用
    2022pycharm:虚拟环境的启用与删除
    兑换码生成与解析-个人笔记(java)
    如何入门搭建Python的开发环境
  • 原文地址:https://blog.csdn.net/qq_38735017/article/details/126572103