• SQL每日一练(牛客新题库)——第7天:必会常用函数


    1. 统计每种性别的人数

    题目:现在运营举办了一场比赛,收到了一些参赛申请,表数据记录形式如下所示,现在运营想要统计每个性别的用户分别有多少参赛者,请取出相应结果
    在这里插入图片描述

    建表语句

    drop table if exists user_submit;
    CREATE TABLE `user_submit` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `profile` varchar(100) NOT NULL,
    `blog_url` varchar(100) NOT NULL
    );
    INSERT INTO user_submit VALUES(1,2138,'180cm,75kg,27,male','http:/url/bisdgboy777');
    INSERT INTO user_submit VALUES(1,3214,'165cm,45kg,26,female','http:/url/dkittycc');
    INSERT INTO user_submit VALUES(1,6543,'178cm,65kg,25,male','http:/url/tigaer');
    INSERT INTO user_submit VALUES(1,4321,'171cm,55kg,23,female','http:/url/uhsksd');
    INSERT INTO user_submit VALUES(1,2131,'168cm,45kg,22,female','http:/url/sysdney');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    解题答案

    select substring_index(profile,',',-1) as gender,count(device_id)
    from user_submit
    group by gender
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2. 截取出年龄

    题目:现在运营举办了一场比赛,收到了一些参赛申请,表数据记录形式如下所示,现在运营想要统计每个年龄的用户分别有多少参赛者,请取出相应结果
    在这里插入图片描述

    建表语句

    drop table if exists user_submit;
    CREATE TABLE `user_submit` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `profile` varchar(100) NOT NULL,
    `blog_url` varchar(100) NOT NULL
    );
    INSERT INTO user_submit VALUES(1,2138,'180cm,75kg,27,male','http:/url/bisdgboy777');
    INSERT INTO user_submit VALUES(1,3214,'165cm,45kg,26,female','http:/url/dkittycc');
    INSERT INTO user_submit VALUES(1,6543,'178cm,65kg,25,male','http:/url/tigaer');
    INSERT INTO user_submit VALUES(1,4321,'171cm,55kg,23,female','http:/url/uhsksd');
    INSERT INTO user_submit VALUES(1,2131,'168cm,45kg,22,female','http:/url/sysdney');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    解题答案

    select substr(profile,locate('kg',profile)+3
    ,length(substring_index(profile,'kg',-1))-2-length(substring_index(profile,',',-1)))
    as age,count(1)
    from user_submit
    group by age
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    3. 提取博客URL中的用户名

    题目:对于申请参与比赛的用户,blog_url字段中url字符后的字符串为用户个人博客的用户名,现在运营想要把用户的个人博客用户字段提取出单独记录为一个新的字段,请取出所需数据。

    在这里插入图片描述

    建表语句

    drop table if exists user_submit;
    CREATE TABLE `user_submit` (
    `id` int NOT NULL,
    `device_id` int NOT NULL,
    `profile` varchar(100) NOT NULL,
    `blog_url` varchar(100) NOT NULL
    );
    INSERT INTO user_submit VALUES(1,2138,'180cm,75kg,27,male','http:/url/bisdgboy777');
    INSERT INTO user_submit VALUES(1,3214,'165cm,45kg,26,female','http:/url/dkittycc');
    INSERT INTO user_submit VALUES(1,6543,'178cm,65kg,25,male','http:/url/tigaer');
    INSERT INTO user_submit VALUES(1,4321,'171cm,55kg,23,female','http:/url/uhsksd');
    INSERT INTO user_submit VALUES(1,2131,'168cm,45kg,22,female','http:/url/sysdney');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    解题答案

    select 
        device_id
        ,replace(blog_url,'http:/url/','')
    from user_submit
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    4. 找出每个学校GPA最低的同学

    题目:现在运营想要找到每个学校gpa最低的同学来做调研,请你取出每个学校的最低gpa。
    在这里插入图片描述

    建表语句

    drop table if exists user_profile;
    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 
    );
    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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    解题答案

    SELECT
        device_id,
        university,
        gpa
    FROM user_profile u
    WHERE gpa = 
        (SELECT MIN(gpa)
         FROM user_profile
         WHERE university = u.university)
    ORDER BY university
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

  • 相关阅读:
    高等数学(第七版)同济大学 习题10-1 个人解答
    无涯教程-JavaScript - IMREAL函数
    浅谈C++中的auto和decltype
    红黑树的插入(C++实现)
    Java集合(Collection、Iterator、Map、Collections)概述——Java第十三讲
    React-editor-js not showing up in a function component
    弱口令破解工具--超级弱口令工具/hydra
    一个Android应用层开发如何转型深入Android Framework?
    深度学习——(8)回归问题
    迅狐短视频矩阵管理系统核心功能
  • 原文地址:https://blog.csdn.net/yuan2019035055/article/details/126394001