mysql分组求和_mysql 行转列,对列的分组求和,对行求和
CREATE TABLE students(
id INT PRIMARY KEY,
NAME VARCHAR(11)
);
CREATE TABLE courses(
id INT PRIMARY KEY,
NAME VARCHAR(11)
);
CREATE TABLE scores(
sid INT,
cid INT,
score INT,
RIMARY KEY (sid,cid)
);
3表关联查询:
SELECT st.id,st.name,c.NAME course,sc.score FROM students st
LEFT JOIN scores sc ON st.id=sc.sid
LEFT JOIN courses c ON sc.cid=c.id
将课程分类转为列名,其列值为分数:
SELECT t.id,t.name,
CASE course WHEN '语文' THEN score ELSE 0 END a,
CASE course WHEN '数学' THEN score ELSE 0 END b,
CASE course WHEN '英语' THEN score ELSE 0 END c,
CASE course WHEN '历史' THEN score ELSE 0 END d
FROM
(SELECT st.id,st.name,c.NAME course,sc.score FROM students st
LEFT JOIN scores sc ON st.id=sc.sid
LEFT JOIN courses c ON sc.cid=c.id) t
对上表按人员id分组,并将分完组的个列分数相加,组合到一行中,并对行求和:
SELECT t2.id,t2.name,SUM(a) '语文',SUM(b) '数学',SUM(c) '英语',SUM(d) '历史',SUM(a+b+c+d) '总分' FROM
(
SELECT t.id,t.name,
CASE course WHEN '语文' THEN score ELSE 0 END a,
CASE course WHEN '数学' THEN score ELSE 0 END b,
CASE course WHEN '英语' THEN score ELSE 0 END c,
CASE course WHEN '历史' THEN score ELSE 0 END d
FROM
(SELECT st.id,st.name,c.NAME course,sc.score FROM students st
LEFT JOIN scores sc ON st.id=sc.sid
LEFT JOIN courses c ON sc.cid=c.id) t
) t2
GROUP BY t2.id;
mysql分组求和_mysql 行转列,对列的分组求和,对行求和相关推荐
- mysql 虚拟字段_Mysql 5.7 的‘虚拟列’是做什么?
Mysql 5.7 中推出了一个非常实用的功能 虚拟列Generated (Virtual) Columns 对于它的用途,我们通过一个场景来说明 假设有一个表,其中包含一个 date 类型的列 `S ...
- mysql 数据相加_mysql,php_mysql查询将两列数值相加问题,mysql,php,sql - phpStudy
mysql查询将两列数值相加问题 如图所示: 我希望加一个total_price列,值为price+price2的和,这个应该怎么写SQL: select * from ims_goods_1 whe ...
- mysql调换数据_mysql互换表中两列数据方法
1.创建表及记录用于测试 CREATE TABLE product ( id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', name ...
- mysql行转列和列转行_mysql 行转列和列转行实例详解
mysql行转列.列转行 语句不难,不做多余解释了,看语句时,从内往外一句一句剖析 行转列 有如图所示的表,现在希望查询的结果将行转成列 建表语句如下: create table `test_tb_g ...
- mysql行转列和列转行_Mysql中行转列和列转行
一.行转列 即将原本同一列下多行的不同内容作为多个字段,输出对应内容. 建表语句 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( id IN ...
- mysql 分组 列转行,mysql列转行以及年月分组_MySQL
bitsCN.com mysql列转行以及年月分组 Java代码 SELECT count(DISTINCT(a.rect_id)) zcount, a.job_dept, DATE_FORMAT(s ...
- mysql分组排列的查询语句_数据的排序与分组语句_MySQL
bitsCN.com 数据的排序与分组语句 使用SQL语句执行查询操作时,我们可能发现查询出的数据结果的排序是无序的.为了更好的观察数据表中的查询结果,开发人员或者用户经常要对查询的数据进行排序操作, ...
- mysql聚合函数要分组吗_mysql聚合函数和分组-阿里云开发者社区
文章实例的数据表,来自上一篇博客<mysql简单查询>:http://blog.csdn.net/zuiwuyuan/article/details/39349611 一. 聚合函数 聚合 ...
- mysql 行转列查询优化_行转列及列转行查询
开发过程中常遇到行转列或是列转行的问题,即需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 一.行转列:将原来同一列下多行的不同内容作为多个字段, ...
- mysql 分桶_mysql的分组和过滤桶where的组合运用
理解分组,可以这样:对GROUP BY子句后面跟随的列名进行分组,然后对每一个分组而不是整个表进行操作. 举例:在产品表中,检索每一个供应商提供的商品的数量. mysql> SELECT ven ...
最新文章
- 学java培训开发需要多少钱
- BED文件如何排序,sort按列排序
- [ Nowcoder Contest 165 #D ] 合法括号序列
- 2022-03-31 一些后续
- Android NDK 内存泄露检测
- 爬虫python漏洞群_如何用爬虫获取cnvd漏洞库?
- 2021牛客第一场H.Hash Function—FFT求差值的卷
- mysql 求bit 某位为1_mysql按位的索引判断值是否为1
- 骑行GPS导航套件:多普达D600+夏新GPS-166+灵图天行者9配合,伴我骑行千里
- 在CF卡上实现EWF功能
- java计算机毕业设计疫情防控期间网上教学管理源程序+mysql+系统+lw文档+远程调试
- 计算机单位厘米 像素,像素厘米转换器
- 【.7z 格式文件的压缩、解压】
- ReactNative仿支付宝付款密码输入框
- C语言 输入一个不大于五位的数字,先判断是几位数字,然后将其数字顺序输出和逆序输出
- 文本转语音-微软Azure-一步一步教你从注册到使用
- 从面试官的视角来提升面试者的必须具备的IT技能
- vue-shop 表格中使用树形控件 vue-table-width-tree-grid
- 男子与 AI 对话 6 周后,选择自杀!一时难分“魔鬼”还是“救星”?
- 集群搭建系列(八)Kafka
热门文章
- 弹性板计算和板带划分计算_彻底搞懂板带的配筋及范围
- 基础级拆机-神舟战神GX8CP5s1上8700发现较为鸡肋-仿CP7s2
- PLSQL 教程 简单上手教程
- 利用Linux socket 模拟大华IPC发送广播包,让大华客户端搜索到一个模拟的ip摄像头
- 【chrome】谷歌chrome浏览器离线安装包的获取及使用技巧
- CMPP3.0状态报告状态码
- 机器人(RPA路程自动化)RPA流程自动化和AI的区别。
- java spring定时器_Spring定时器的使用
- python安装osgeo库_python第三方库安装
- 西北大学计算机课表,西北大学课表