mysql横纵分组统计_MySQL中如何实现分组统计
首先准备四张表A、B、C、D,
--------------------------------
A | B | C | D
a b | a c | a d | d e
1 1 | 1 1 | 1 A | A 1
2 2 | 1 3 | 2 B | B 2
3 4 | 1 4 | 3 C | C 3
4 6 | 2 1 | 4 D | D 4
--------------------------------
下面我们需要用一条sql语句将A表所有的列,B表对与A表a字段相关联的列求count,通过C表,将D表与A表关联起来,得到的结果如下:
1 1 3 1
2 2 1 2
3 4 0 3
4 6 0 4
Mysql语句解决:
select A.a,A.b,IFNULL(c,0) as c,D.a
from (select 1 as a,2 as b union all
select 2 as a,2 as b union all
select 3 as a,4 as b union all
select 4 as a,6 as b) as A
left outer join
(select a,count(a) as c from(
select 1 as a,3 as c union all
select 1 as a,3 as c union all
select 1 as a,3 as c union all
select 2 as a,3 as c ) B group by a) as B
on A.a=B.a
join
(select 1 as a,'A' as d union all
select 2 as a,'B' as d union all
select 3 as a,'C' as d union all
select 4 as a,'D' as d ) as C
on A.a=C.a
join(select 1 as a,'A' as d union all
select 2 as a,'B' as d union all
select 3 as a,'C' as d union all
select 4 as a,'D' as d ) as D
on D.d=C.d
标签:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果
文章转载自:IT专家网
0
好文不易,鼓励一下吧!
mysql横纵分组统计_MySQL中如何实现分组统计相关推荐
- mysql 中间表的好处_Mysql中使用中间表提高统计查询速度
对于数据量较大的表,在其上进行统计查询通常会效率很低,并且还要考虑统计查询是否会对在线的应用产生负面影响.通常在这种情况下,使用中间表可以提高统计查询的效率, 下面通过对session 表的统计来介绍 ...
- mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧
本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...
- mysql字符串外键约束_MySQL中的约束函数主外键
/*select语句有6大子句: (1)from子句 (2)where子句 (3)group by子句 (4)having子句 (5)order by子句 (6)limit子句 强调:每一个selec ...
- mysql 分组排序_MySQL如何实现Excel分组排序功能?
Excel中分组排序只需要对数据进行升序降序,再利用if函数添加排序序号,即可筛选出分组top数据. Oracle也有row_number()函数对数据进行分组排序,而MySQL并没有此类函数,那么如 ...
- mysql的explain怎么看_mysql中explain用法详解
如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...
- mysql 子查询怎么写_MySQL中两种子查询的写法
MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time ...
- MySQL过滤分组关键字_MySQL教程76-HAVING 过滤分组
在 MySQL 中,可以使用 HAVING 关键字对分组后的数据进行过滤. 使用 HAVING 关键字的语法格式如下: HAVING HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 ...
- mysql去除select换行符_MySQL中去除字段中的回车符和换行符
问题: 在使用[ load data infile 'D:/node.txt' into table node fields terminated by '\t'; ]语句批量导入如下图所示的aaa. ...
- mysql创建临时表 主键_MySQL中临时表的基本创建与使用教程
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. ...
最新文章
- Redis安装与源码调试
- SSMSSH项目中 springmvc 乱码问题解决
- 为什么8位有符号数的取值范围是-128~+127
- mysql序列号发生器
- telnet命令---Linux学习笔记
- 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包
- 17 redis -key设计原则
- Win7系统防火墙设置不了怎么办
- 【ASP.NET】基础补习之验证控件
- 华为屏下前置摄像头专利曝光:消灭刘海
- Android开发笔记(六)可变字符串
- python项目小案例:一个网页响应超时提醒小闹钟
- [透析] 卷积神经网络CNN究竟是怎样一步一步工作的?
- 莫兰迪颜色表以及RGB向16进制颜色的转换连接
- 顺序表和链表 相关知识点总结
- 什么是网络连接状态指示器NCSI
- word中全部数字、大小写字母、标点更改为新罗马字体Times News Romans
- 实现进程互斥需要遵循的原则
- h3c 抓包么 能通过debug_H3C debugging 使用技巧
- 用python画小仓鼠代码,用python画小仓鼠教程