一生一代一篇文,争教两处销魂。上回说到,李有为跟着小卖部大爷,装逼界的传奇人物逼神阿六敦学了一招group by分组后自以为可以纵横天下,然而很快,他便发现人外有人、天外有天,强中还有强中手,一山还比一山高。

 本以为自己无敌于天下,可谁曾想自己却成了《天龙八部》里的鸠摩智,遇上了三个挂逼,一个开局满级各种技能全部精通,一个新账号开挂各种属性全部加满,一个半路盗号身上全是史诗神装。这,怎么打?拿头去打?

 李有为怎么也想不到,学完了group by之后,自己的头上却已被更多的乌云笼罩。

 一念至此,大爷那张笑脸又从记忆深处慢慢浮现出来,对sex字段分组,我想要展示结果的时候,把M替换成男,把N替换成女怎么做?

 颜值这个字段只是一个数字,对人没有什么感官上的冲击,如果我把颜值大于等于250的妹子归类到“举世无双”,把颜值大于等于220小于250的妹子归类到“倾国倾城”,先对这些妹子进行一个范围转换,然后在进行分组又该怎么做?

 基础信息表里面有sexual_orientation(性取向)这么一个字段,统计一下各个颜值阶段的妹子的性取向情况,为了简单明了的观察,我需要把性取向的结果放到一列做横向对比,这个时候又该怎么办?

怎么办?大厦之将倾,总得有人出来力挽狂澜,而这个救世主正是今天的猪脚,case when

-- case wen 有两种用法
-- 1、简单 case
case columnwhen 条件 then 返回值when 条件 then 返回值…………else 不符合上述条件的返回值end-- 2、case 搜索函数
casewhen column=条件 then 返回值when column=条件 then 返回值…………else 不符合上述条件的返回值end-- 说明:
-- 第二种方法可以写复杂的条件表达式,因此功能更加强大
-- 既然功能强大,我们就只讲第二种,第一种了解即可
-- 如果满足第一个条件,以后的就不会执行
-- 最后的else 可以省略
-- 可以用括号把case when整个代码包起来,更优美……

 case when 可以实现三种强大的功能,**1、等值转换,2、范围转换,3、列转行。**让我们一个一个来看。

1、等值转换

 转换sex中的M F,M为男,F为女

SELECT( CASE WHEN sex = 'M' THEN '男' ELSE '女' END ) AS sex,count( 1 ) as num
FROMhuman_base_info
GROUP BYsex-- 两种效果一样
SELECT( CASE WHEN sex = 'M' THEN '男' WHEN sex = 'F' THEN '女' END ) AS sex,count( 1 ) AS num
FROMhuman_base_info
GROUP BYsex

2、范围转换

 按照颜值给美女分个类,>=250 举世无双 220-250 倾国倾城,200-220 国色天香 150-200 天生丽质 100-150 秀色可餐 <100秀色可餐,做好范围值划分之后,在进行分组计数统计

SELECT(CASEWHEN looks >= 250 THEN'举世无双' WHEN looks >= 220 AND looks < 250 THEN '倾国倾城'WHEN looks >= 200 AND looks < 220 THEN '国色天香' WHEN looks >= 150 AND looks < 200 THEN '天生丽质' WHEN looks >= 100 AND looks < 150 THEN'秀色可餐' WHEN looks < 100 THEN'小家碧玉' END ) AS looks_type,count( 1 ) AS num
FROMhuman_base_info
WHEREsex = 'F'
GROUP BYlooks_type

3、行转列

 先按照颜值进行范围值划分,
 然后对性取向(sexual_orientation)进行判断,如果符合的计“1”,否者为0
 最后进行分组求和统计

SELECT(CASEWHEN looks >= 250 THEN'举世无双' WHEN looks >= 220 AND looks < 250 THEN '倾国倾城'WHEN looks >= 200 AND looks < 220 THEN '国色天香' WHEN looks >= 150 AND looks < 200 THEN '天生丽质' WHEN looks >= 100 AND looks < 150 THEN'秀色可餐' WHEN looks < 100 THEN'小家碧玉' END ) AS looks_type,sum( CASE WHEN sexual_orientation = 0 THEN 1 ELSE 0 END ) AS 异性恋,sum( CASE WHEN sexual_orientation = 1 THEN 1 ELSE 0 END ) AS 同性恋,sum( CASE WHEN sexual_orientation = 2 THEN 1 ELSE 0 END ) AS 双性恋,sum( CASE WHEN sexual_orientation = 3 THEN 1 ELSE 0 END ) AS 无性恋
FROMhuman_base_info
WHEREsex = 'F'
GROUP BYlooks_type

举世无双,倾国倾城,国色天香,天生丽质、秀色可餐、小家碧玉,世间美女千千万,老子高兴天天换……

 “醒一醒!”大爷在一旁轻轻拍了拍李有为的脑袋,“我换你脑壳一坨铁,才吃了一包酒鬼花生就醉成这样了?”

 "我麻烦你照一照镜子,看一下自己现在究竟有几斤几两”

这次才是你的真实写照……

 "呜呜呜……”,被大爷这么一说,李有为呜咽着哭出了声,“前辈,明天就是全校装逼考试大会了,说好的一飞冲天,一鸣惊人呢,都考试前一天晚上了,我还是从前那个骚年,没有一点点改变……”

"小伙子,你磨着急嘛!"大爷突然嘿嘿笑道,“真正的好戏才刚刚上演。”

大爷口中的好戏究竟是什么,明天的装逼考试大会又会发生什么,李有为究竟能不能在装逼大会上一鸣惊人?

预知后事如何,请听下回分解。

MySQL从删库到跑路(10):case when——国色天香、倾国倾城,给漂亮小姐姐分个类相关推荐

  1. MySQL从删库到跑路(2):大爷的SQL私房菜

    大爷的SQL私房菜 夜色如墨,月凉如水,一轮皎洁的圆月高高地挂在夜空之上,平日里鼾声如雷的室友今夜也停止了打鼾,如此静谧的夜晚,李有为却辗转难眠. 时间悄然来到凌晨一点半,他已经在窗边站了53分钟23 ...

  2. MySQL从删库到跑路(5):in and not

     "哈哈哈哈,看你这几天没来上课,我还以为你去拜什么高人为师了?原来就是这个烂番薯.臭鸟蛋的小卖部大爷学装逼,你逗我玩呢?哈哈哈哈哈"  "哈哈哈哈,一个老屌丝,一个小屌 ...

  3. MySQL从删库到跑路(三)——SQL语言

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.SQL语言简介 1.SQL语言简介 SQL是结构化查询语言(Structured Query Language) ...

  4. MySQL从删库到跑路

    MySQL数据库指令集 增(insert) 不指定字段 insert into <表名> values(值1,值2,值3...); 指定字段(没给到值的字段为默认值或null) inser ...

  5. mysql从删库到跑路 亚马逊_Amazon RDS 上的 MySQL 的已知问题和限制 - Amazon Relational Database Service...

    Amazon RDS 上的 MySQL 的已知问题和限制 下面给出了有关对 Amazon RDS 使用 MySQL 的已知问题和限制. 不一致的 InnoDB 缓冲池大小 对于 MySQL 5.7,管 ...

  6. MySQL从删库到跑路(7):连接查询,用联系的观点看女神与渣男

     "有为,能陪我说说话么?"  望着梨花带雨的女神,一时间李有为陷入了恍惚之中,尽管心里已经千万次告诫自己要远离面前的女人,可是当她真的出现在面前时,李有为的大脑早已一片空白.   ...

  7. Mysql从删库到跑路(1)

    文章目录 前言 初识Mysql mysql是啥呢 什么是数据库 DBMS 操作数据库 基本操作 数据库中的数据类型 操作数据表 列的一些其他属性 数据表的引擎 基本操作 总结 前言 终于放假了,前段时 ...

  8. MySQL从删库到跑路(8):聚合函数——让我们来统计一下漂亮妹子的信息

     "李有为,我且问你,human_base_info表面,颜值最高的妹子能有多高?"  听完大爷的话,李有为的嘴角情不自禁地绽开了一抹不易察觉的潇洒而自信的笑容,"大爷, ...

  9. MySQL从删库到跑路(9):group by——给漂亮小姐姐分个组

     上回说到,李有为学会了五个聚合函数,自那以后,谁是这个世界上最漂亮的人,谁是这世界上最高的人,谁是这个世界上最重的人,都逃不过她的火眼金睛,然后大爷的一个问题又让李有为陷入了难题的泥沼当中,在这个花 ...

最新文章

  1. java程序语句是_Java-语言编程
  2. FTP多用户权限 linux环境 一站式解决方案(基础篇)
  3. react中修改antd的默认样式
  4. SpringBoot项目集成Mybatis Plus(一)多数据源配置
  5. Spring Boot:(三)开发Web应用之Thymeleaf篇
  6. RiskSense Spotlight:全球知名开源软件漏洞分析报告
  7. Python下的云计算(OpenStack技术书籍)
  8. $.ajax()在IE9下的兼容性问题
  9. windows做软件界面
  10. 数据的预处理分箱python_数据预处理——数据分箱
  11. 通信技术计算机技术合称为,通信技术、计算机技术和控制 技术合称为3C
  12. SpringSocial 开发 QQ 登录
  13. ssh开启图形界面_【工具大道】ssh登录Linux服务器,并显示图形化界面
  14. 什么是蓝牙(Bluetooth)
  15. springsecurity总结
  16. IDEA快捷键CTRL+ALT+L格式化失效
  17. 【Front Plant Sci】AcMYB1与AcbHLH1相互作用从而调节“银皇后”植物中的花青素生物合成
  18. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 L-K序列
  19. 云计算的备份时代 磁带仍在
  20. python陆股通_陆股通什么意思(陆股通买入后会涨吗)

热门文章

  1. linux开发板lcd上显示jpg图片,关于在嵌入式开发板上显示一张jpeg图片
  2. 视频教程-MCSE 2012之410视频课程:安装和配置Windows Server 2012 R2-微软认证
  3. 大卫 异星觉醒 机器人_异星觉醒有第二部吗揭晓 大结局剧情反转让人措手不及...
  4. 2021化州市高考成绩查询,2021年化州市高考状元名单资料,今年化州市高考状元多少分...
  5. Sybase携美地森打造云架构数据仓库平台
  6. 最全的Python虚拟环境使用方法
  7. e-cology在广告行销—泛微协同广告行业解决方案
  8. 民宿管理系统的设计与实现
  9. 解决Vue数组更新不渲染的问题
  10. 浙江万里学院计算机专业好不好,浙江万里学院值得上吗 重点专业有哪些