admin管理员组文章数量:1026989
MySQL从删库到跑路(10):case when——国色天香、倾国倾城,给漂亮小姐姐分个类
一生一代一篇文,争教两处销魂。上回说到,李有为跟着小卖部大爷,装逼界的传奇人物逼神阿六敦学了一招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——国色天香、倾国倾城,给漂亮小姐姐分个类
一生一代一篇文,争教两处销魂。上回说到,李有为跟着小卖部大爷,装逼界的传奇人物逼神阿六敦学了一招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国色天香倾国倾城,给漂亮小姐姐分个类
版权声明:本文标题:MySQL从删库到跑路(10):case when——国色天香、倾国倾城,给漂亮小姐姐分个类 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694660694a254667.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论