首先准备四张表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中如何实现分组统计相关推荐

  1. mysql 中间表的好处_Mysql中使用中间表提高统计查询速度

    对于数据量较大的表,在其上进行统计查询通常会效率很低,并且还要考虑统计查询是否会对在线的应用产生负面影响.通常在这种情况下,使用中间表可以提高统计查询的效率, 下面通过对session 表的统计来介绍 ...

  2. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧

    本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...

  3. mysql字符串外键约束_MySQL中的约束函数主外键

    /*select语句有6大子句: (1)from子句 (2)where子句 (3)group by子句 (4)having子句 (5)order by子句 (6)limit子句 强调:每一个selec ...

  4. mysql 分组排序_MySQL如何实现Excel分组排序功能?

    Excel中分组排序只需要对数据进行升序降序,再利用if函数添加排序序号,即可筛选出分组top数据. Oracle也有row_number()函数对数据进行分组排序,而MySQL并没有此类函数,那么如 ...

  5. mysql的explain怎么看_mysql中explain用法详解

    如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...

  6. mysql 子查询怎么写_MySQL中两种子查询的写法

    MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time ...

  7. MySQL过滤分组关键字_MySQL教程76-HAVING 过滤分组

    在 MySQL 中,可以使用 HAVING 关键字对分组后的数据进行过滤. 使用 HAVING 关键字的语法格式如下: HAVING HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 ...

  8. mysql去除select换行符_MySQL中去除字段中的回车符和换行符

    问题: 在使用[ load data infile 'D:/node.txt' into table node fields terminated by '\t'; ]语句批量导入如下图所示的aaa. ...

  9. mysql创建临时表 主键_MySQL中临时表的基本创建与使用教程

    当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. ...

最新文章

  1. Redis安装与源码调试
  2. SSMSSH项目中 springmvc 乱码问题解决
  3. 为什么8位有符号数的取值范围是-128~+127
  4. mysql序列号发生器
  5. telnet命令---Linux学习笔记
  6. 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包
  7. 17 redis -key设计原则
  8. Win7系统防火墙设置不了怎么办
  9. 【ASP.NET】基础补习之验证控件
  10. 华为屏下前置摄像头专利曝光:消灭刘海
  11. Android开发笔记(六)可变字符串
  12. python项目小案例:一个网页响应超时提醒小闹钟
  13. [透析] 卷积神经网络CNN究竟是怎样一步一步工作的?
  14. 莫兰迪颜色表以及RGB向16进制颜色的转换连接
  15. 顺序表和链表 相关知识点总结
  16. 什么是网络连接状态指示器NCSI
  17. word中全部数字、大小写字母、标点更改为新罗马字体Times News Romans
  18. 实现进程互斥需要遵循的原则
  19. h3c 抓包么 能通过debug_H3C debugging 使用技巧
  20. 用python画小仓鼠代码,用python画小仓鼠教程

热门文章

  1. Debenham养老金项目关键流程4-Opt in 流程
  2. CookieHelper
  3. ubuntu18安装微信
  4. scrapy_redis项目配置
  5. Winform里面的缓存,MemoryCache使用
  6. 007-配置IP和DNS
  7. 结构体全局变量成员赋值
  8. bootstrap 兼容哪些浏览器
  9. 蓝牙 MultipeerConnectivity
  10. Struts2的声明式异常处理