您好,欢迎访问一九零五行业门户网

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

其它类似信息

推荐信息