mysql dbo_mysql-双重分组
我的表有两列:名称和等级.看起来像这样:
NAME | GRADE
Adam | 1
Adam | 2
Adam | 2
Adam | 3
Frank | 2
Frank | 1
现在,我想创建如下所示的视图:
NAME | GRADE 1 | GRADE 2 | GRADE 3
Adam | 1 | 2 | 1
Frank | 1 | 1 | 0
我写了这个:
SELECT Name,
(SELECT COUNT(Grade)
FROM dbo.Rodzaj
WHERE Grade = '1') as Grade_1,
(SELECT COUNT(Grade)
FROM dbo.Rodzaj
WHERE Grade = '2) as Grade_2,
(SELECT COUNT(Grade)
FROM dbo.Rodzaj
WHERE Grade = '3') as Grade_3
FROM dbo.Rodzaj
GROUP BY Name
但这行不通…
我将不胜感激任何帮助
解决方法:
您要查找的内容称为“数据透视表”,它由一系列CASE语句完成,这些语句对每个条件应用1或0,然后对1和0进行SUM()检索计数.
SELECT
NAME,
SUM(CASE WHEN GRADE = 1 THEN 1 ELSE 0 END) AS GRADE1,
SUM(CASE WHEN GRADE = 2 THEN 1 ELSE 0 END) AS GRADE2,
SUM(CASE WHEN GRADE = 3 THEN 1 ELSE 0 END) AS GRADE3
FROM Rodzaj
GROUP BY NAME
请注意,如果您需要具有动态的列数,则必须使用脚本语言和循环来构造查询. (或存储过程中的循环)
标签:sql,mysql
来源: https://codeday.me/bug/20191201/2078623.html
mysql dbo_mysql-双重分组相关推荐
- MySQL:基础—数据分组
MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...
- java 索引排序_Java培训MySQL之排序分组优化索引的选择
索引的选择 ①首先,清除emp上面的所有索引,只保留主键索引! drop index idx_age_deptid_name on emp; ②查询:年龄为30岁的,且员工编号小于101000的用户, ...
- Mysql 的 排序分组优化
Mysql 的 排序分组优化 where 条件和 on的判断这些过滤条件,作为优先优化的部门,是要被先考虑的!其次,如果有分组和排序,那么也要考虑grouo by 和order by. 1. 无过滤不 ...
- mysql按月份分组查询_mysql如何按月份分组查询
mysql按月份分组查询的方法:根据format字符串格式化date值,语法为[DATE_FORMAT(date,format)],其中[%M ]为月的名字. mysql按月份分组查询的方法:sele ...
- mysql 如何时间分组,mysql如何按时间分组查询
mysql按时间分组查询的方法: DATE_FORMAT(date,format):函数用于以不同的格式显示日期/时间数据. 参数: date:表中时间类型的字段名称. format:时间输出格式. ...
- 使用mysql语句进行分组查询
使用mysql语句进行分组查询 1 作用 对整个数据表的某几个字段进行分组,然后通过分组函数得到我们想要的结果 2 如何用 2.1 只分一个组 2.1.1 本质 就是根据分组字段把整个表的数据分为几组 ...
- MySQL数据库,分组函数篇
MySQL数据库,分组函数篇 1.分组函数 极值 求和 平均值 列数和 2.分组查询 3.小练习 4.大BOSS 1.分组函数 极值 示例表内容见此篇文章 找出最高工资: mysql> sele ...
- mysql双重分组没有值也要显示_mysql 统计数据,按照日期分组,把没有数据的日期也展示出来...
因为业务需求,要统计每天的新增用户并且要用折线图的方式展示. 如果其中有一天没有新增用户的话,这一天就是空缺的,在绘制折线图的时候是不允许的,所有要求把没有数据的日期也要在图表显示. 查询2019-0 ...
- mysql 以时间段分组_根据mysql 按日期或者时间段 分组 统计的查询
SELECT DATE_FORMAT( deteline, "%Y-%m-%d %H" ) , COUNT( * ) FROM test GROUP BY DATE_FORMAT( ...
- mysql group by 分组查询
分组的SQL语句有2个: group by 和分组聚合函数实现 partition by (oracle和postgreSQL中的语句)功能 group by + having 组合赛选数据 注意:h ...
最新文章
- oracle的have,Does oracle have “auto number” data type [duplicate]
- JAXP进行DOM和SAX解析
- gis等时圈怎么做_如何批量制作交通等时圈
- bitcoin-memorypool源码分析
- mysql数据库分析结果与结论_mysql数据库show processlist结果分析
- SysUtils.UpperCase、SysUtils.LowerCase - 大小写转换
- html 弹出播放器,jQuery点击弹出视频播放器代码
- java开发职业规划
- Reset 重置按钮
- 豆瓣电影数据分析案例
- 排序算法-归并排序详细图解
- 重装系统后通过修改注册表实现记录还原
- Python实现平行坐标图的两种方式
- SpringMVC简易的程序以及基本原理
- XML是什么,它可以做什么?——写给XML入门者
- 【 CCIE考试分数怎么算?】
- python 发送邮件 普通邮件 HTML 发送带附件 群发邮件
- Intrepid 英特佩斯 Vehicle spy vspy3使用
- 管理软件Jira Service Desk使用教程之如何将Jira Cloud用于Slack?
- 5大常用的免费OCR软件