两个表都有一个字段class,想统计两个表里以class分类的总共有多少个
select class,count( *) as total  from table1 group by class如果我两个表分别为table1,table2,我想分别统计出来,如何做呢

解决方案 »

  1.   

    select class,count( *) as total,1  from table1 group by class
    UNION ALL
    select class,count( *) as total,2  from table2 group by classselect class,count( *) as total  from (SELECT * FROM table1
    UNION ALL
    SELECT * FROM table2
    ) group by class
      

  2.   

    select a.class ,count(*) from (select class from table1 union all select class from table2) a group a.class
      

  3.   

    select class,count( *) as total  from (SELECT * FROM table1 
    UNION ALL 
    SELECT * FROM table2 
    ) T group by class
      

  4.   

    select class,sum(total) from (
    select class,count(*) as total  from table1 group by class
    union all
    select class,count(*) as total  from table2 group by class
    )
    group by class
      

  5.   

    哦,忘了加个别名。 先GROUP然后再SUM效率上比较高。
    select class,sum(total) from (
        select class,count(*) as total  from table1 group by class
        union all
        select class,count(*) as total  from table2 group by class
    ) t 
    group by class