比如
ID 材料一 材料二 材料三 
1   A       C      C
2   B       B      A
3   A       D      B
4   B       B      A
5   B       C      B
6   A       D      B
7   D       A      C
8   B       C      B这样汇总后的结果为
材料一 材料二 材料三  数量
A       C      C     1
B       B      A     2
A       D      B     2
B       C      B     2
D       A      C     1
以上就是要根据材料一,材料二,材料三 三个字段来进行汇总,该 如何实现呢?

解决方案 »

  1.   

    select 材料一,材料二,材料三,count(*) 数量 from tb group by 材料一,材料二,材料三
      

  2.   

    select 材料一 ,  材料二 ,  材料三 , 数量 = count(*) from tb group by 材料一  , 材料二 ,  材料三
      

  3.   

    可是问题是我还要显示其它字段
    ID    材料一          材料二          材料三     架高  颜色
    1       A               C             C      mmm      r
    2       B               B             A      ee       e
    3       A               D             B      ffr       t
    4       B               B             A      ee        e
    5       B               C             B      ee        22
    6       A               D             B      r         w
    7       D               A             C       re       2
    8       B               C             B       e      2
    如汇总后的结果为   
    材料一   材料二   材料三     数量  架高 颜色 ....
    A         C        C       1   ??   ??
    B         B        A       2   ??   ??
    A         D        B       2   ??   ??
    B         C        B       2   ??   ??
    D         A        C       1   ??   ??
      

  4.   

    这是个查询不能的问题.除非你指定一个保留条件.
    因为三个字段group by之后,不会重复,与架高中出现的值,或与颜色中出现的值出现了一对多. 即,多提供一个条件形成1对1.那么行数与group by 后的行数一致.或者直接把表里的所有记录都列出来,把count值做为一个附加列显示. 那么行数与原表记录行数一致.