假如有如下表test_table,(假如id为主键,唯一)有如下记录
 id name 
   1 a 
   2 b 
   3 c 
   4 c 
   5 b
   6 b
经过查询后,想要得到有多少条不重复的name,以及每条name的id数量(number)
结果如下
name number
 a     1
 b     3
 c     2
也就是说,先要查看有多少name(不重复的),然后查看每个不重复的name有多少条记录
我想用distinct来实现,但是遇到问题,请问如何高效解决?

解决方案 »

  1.   

    select name,count(*) from test_table group by name这样?
      

  2.   

    一楼的语句就可以产生 
    name number
     a     1
     b     3
     c     2
     这个结果select name,count(*) as `number` from test_table group by name
      

  3.   

    select name,count(*) number from test_table group by name
      

  4.   

    果然强悍!我也刚想到用group,试了下,成功!Thanks!
      

  5.   


    select name,count(*) as `number1` from test_table group by name;
    --查询有几个不同的name
    select count(distinct name) as number2 from test_table;
    --得到有多少条不重复的name