• SQL case when在语句中可以增加列,并重新划分分类项(if同)


    CASE
    WHEN 布尔表达式1 THEN 结果表达式1
    WHEN 布尔表达式2 THEN 结果表达式2 …
    WHEN 布尔表达式n THEN 结果表达式n
    [ ELSE 结果表达式n+1 ]
    END
    
    按从上到下的书写顺序计算每个WHEN子句的布尔表达式。
    返回第一个取值为TRUE的布尔表达式所对应的结果表达式的值。
    如果没有取值为TRUE的布尔表达式,
    则当指定了ELSE子句时,返回ELSE子句中指定的结果;
    如果没有指定ELSE子句,则返回NULL。

    CASE函数

    是一种多分支的函数,可以根据条件列表的值返回多个可能的结果表达式中的一个。
    可用在任何允许使用表达式的地方,但不能单独作为一个语句执行。

    计算25岁以上和以下的用户数量

    select 
    case when age<25 or age is null then '25岁以下'
         when age>=25 then '25岁及以上'
    end as age_cut,count(1) as user_amount
    from user_profile
    group by age_cut;

    drop table if exists `user_profile`;
    drop table if  exists `question_practice_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
    );
    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');
    INSERT INTO question_practice_detail VALUES(2,3214,112,'wrong');
    INSERT INTO question_practice_detail VALUES(3,3214,113,'wrong');
    INSERT INTO question_practice_detail VALUES(4,6543,111,'right');
    INSERT INTO question_practice_detail VALUES(5,2315,115,'right');
    INSERT INTO question_practice_detail VALUES(6,2315,116,'right');
    INSERT INTO question_practice_detail VALUES(7,2315,117,'wrong');
    INSERT INTO question_practice_detail VALUES(8,5432,117,'wrong');
    INSERT INTO question_practice_detail VALUES(9,5432,112,'wrong');
    INSERT INTO question_practice_detail VALUES(10,2131,113,'right');
    INSERT INTO question_practice_detail VALUES(11,5432,113,'wrong');
    INSERT INTO question_practice_detail VALUES(12,2315,115,'right');
    INSERT INTO question_practice_detail VALUES(13,2315,116,'right');
    INSERT INTO question_practice_detail VALUES(14,2315,117,'wrong');
    INSERT INTO question_practice_detail VALUES(15,5432,117,'wrong');
    INSERT INTO question_practice_detail VALUES(16,5432,112,'wrong');
    INSERT INTO question_practice_detail VALUES(17,2131,113,'right');
    INSERT INTO question_practice_detail VALUES(18,5432,113,'wrong');
    INSERT INTO question_practice_detail VALUES(19,2315,117,'wrong');
    INSERT INTO question_practice_detail VALUES(20,5432,117,'wrong');
    INSERT INTO question_practice_detail VALUES(21,5432,112,'wrong');
    INSERT INTO question_practice_detail VALUES(22,2131,113,'right');
    INSERT INTO question_practice_detail VALUES(23,5432,113,'wrong');
    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');
  • 相关阅读:
    clientHeight、offsetHeight、scrollHeight详解
    JavaScript中常见的字符串操作函数及用法
    获取伪元素的属性和改变伪元素的属性
    HTML和CSS实现左侧固定宽度右侧内容可滚动
    gulp常用插件
    gulp入门详细教程
    Javascript 异步实现机制
    JavaScript:彻底理解同步、异步和事件循环(Event Loop)
    chrome调试,打完断点后关于JS的几个控制介绍
    js断点调试心得
  • 原文地址:https://www.cnblogs.com/xuwinwin/p/15873810.html
Copyright © 2020-2023  润新知