case when then 与 count联合使用
我们都知道SQL中适用case when then来转化数据库中的信息
比如 select (case sex when 0 then '男' else '女' end) AS sex from studentInfo
那么在集合函数中它有什么用呢 ?
假设数据库有一张表名为student的表。
如果现在要你根据这张表,查出江西省男女个数,广东省男生个数,浙江省男女个数 怎么写SQL语句?
答案是:
select sex ,
count ( case province when '广东省' then '广东省' end )as 广东省 ,
count ( case province when '江西省' then '江西省' end )as 江西省 ,
count ( case province when '浙江省' then '浙江省' end )as 浙江省
from student group by sex
count()函数即根据给定的范围和group by(统计方式) 而统计行数据的条数
我们一步步来理解上面语句
1. select sex from student (查询数据表中的存在的男女条数)
2.select sex, count (*) as num from student group by sex (查询表中男女数量)
3.select sex ,province, count (*)as num from student group by sex,province (查询各省男女数量)
重点来了,如果我把count(*) 中的 *号换成任一列名呢? 如count(province) 会怎样?
4.select sex ,province, count (province)as num from student group by sex,province (查询各省男女数量)
又有count (province)等价于 count(case province when '浙江省' then '浙江省' else province end )
但是如果我们缩小范围呢即count(case province when '浙江省' then '浙江省' end ) 那么请看下面
5.select sex ,province, count ( case province when '浙江省' then '浙江省' end )as num from student group by sex,province
即统计男女数量范围限定在浙江省 再精简一下即下面
6.select sex, count ( case province when '浙江省' then '浙江省' end ) as 浙江省 from student group by sex
已经接近我们的要求了,现在只要加上另几个字段就是了
7.select sex ,count ( case province when '广东省' then '广东省' end )as 广东省 ,count ( case province when '江西省' then '江西省' end )as 江西省 ,count ( case province when '浙江省' then '浙江省' end )as 浙江省 from student group by sex
小结:当然实现有很多种方法 可以多个子查询拼接起来也不无可厚非。我这只是一种思路
补充:case when then 知识点
(1) select (case province when '浙江省' then '浙江' when '江西省' then '江西' end ) as 省份 from student
如果默认范围如果没全包含则为空
(2)select (case province when '浙江省' then '浙江' when '江西省' then '江西' else province end ) as 省份 from student
Eg:查找每个订单中的报告情况
转载于:https://www.cnblogs.com/xujian2016/p/5466250.html
case when then 与 count联合使用相关推荐
- 题目1023:EXCEL排序---------Case后面的是count,不是C
#include<stdio.h> #include<algorithm> #include<cstring> using namespace std;struct ...
- group by 和count 联合使用问题
工作中要根据用户发布的产品数量来排序做分页,使用group by uid 用count(uid) 来统计的数量和想要的数量不正确. count统计的数量是被group by 分组以后每一组中数据的数量 ...
- Case When和聚合函数count、sum的使用
需求: 根据贫困标志,取出不同标准下的的人数有多少,以区县位单位. 1代表已脱贫人口:2代表返贫人口:3代表未脱贫 select t3.region_id as 'regionId', t3.regi ...
- dotty编译器语法特性之一交叉类型,联合类型和文本单例类型
2019独角兽企业重金招聘Python工程师标准>>> ###翻译:http://dotty.epfl.ch/docs/reference/intersection-types.ht ...
- mysql 聚集函数 count 使用详解(转载)
本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 count 连用 3.group by (多个字段) ...
- mysql 聚集函数 count 使用详解
mysql 聚集函数 count 使用详解 本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 coun ...
- MySQL中聚合函数count的使用和性能优化
本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 count 连用 3.group by (多个字段) ...
- MySQL 避坑宝典 -- 来自小米的开源工具
摘自: https://github.com/XiaoMi/soar/blob/master... 这是小米 soar 的默认启发规则汇总,也是 DBA 多年精华总结.熟读各个案例,对于一般的 MyS ...
- C语言编程规范 学习笔记
C语言编程规范 一.代码总体原则 1.清晰 2.简洁 3.选择适合的风格,与代码原有风格保持一致 二.头文件 背景 术语定义 原则 2.1 头文件中适合放置接口的声明,不适合放置实现 原则 2.2 头 ...
最新文章
- 又一年度热销爆款,OPPO R11上市一个月勇夺线下销量第一
- 奇迹暖暖登录一直显示服务器满,奇迹暖暖无法登录解决办法
- html select 可输入 可编辑
- UVA - 1606 Amphiphilic Carbon Molecules
- 一文掌握 Redis 常用知识点 | 图文结合
- VI3的VLAN配置:VST、EST和VGT标记
- 【渝粤题库】陕西师范大学200651线性代数 作业(高起专、高起本)
- ios 设置属性的center_【从0到1的Stata图表学习1】图例设置
- Qt文档阅读笔记-重现GUI事件进行单元测试
- linux的awk命令如何用?
- C#门诊收费管理系统设计(数据库+源码+文档)
- 51单片机实现电子密码锁设计
- PMP备考大全:经典题库(6月第1周)
- iphone铃声android铃声,iphone12如何设置铃声?iphone12更换铃声方式分享[多图]
- Worker节点加入K8S集群报错:error execution phase preflight: couldn‘t validate the identity of the API Server
- vue+js 从一个数组中删除在另一个数组中已存在对象;
- 【华为云技术分享】云图说 | 初识华为云存储容灾服务:为您的云上数据保驾护航
- iOS常见问题笔记总结这是本人开发中遇见的一些常见问题处理方法的总结笔记,包括http访问配置、Alcatraz插件安装、最新cocoapod安装、真机运行出错等许多与参考笔记总结,希望对大家有所帮助
- 万能引用,引用折叠,右值变左值的情况
- 用Python演奏《太阳照常升起》
热门文章
- [强网杯 2019]随便注 1【SQL注入】解析过程
- 2012系统如何搭建pptp服务器,ubuntu server 12.04 搭建 pptp 服务器
- simulink中比scope模块还好用的平替出图工具?
- 离子液体有哪些种类(咪唑类、吡啶类、季铵类、季鏻类、吡咯烷类、哌啶和功能化离子液体)
- mysql批量一次查询和多次查询性能测试对比
- 10000个定制红包 | 微信群建好了,快来咯!
- 时尚高颜值真无线蓝牙耳机排行榜,送女友蓝牙耳机最强清单
- jdk1.8下载需要登陆oracle账号解决
- 番外篇 00-2022 元旦:四位主播居然都是“社恐”
- ado.net mysql中文乱码_mysql中文乱码