有如下表:
field1 field   field3
A         x       2.5      
A         x        3        B         y        1         
B         x        2
B         y        3C         x        2
用一条SQL语句执行A,B,C三种分组里的XYZ等等分类的平均值,执行结果如下:
field1 field2  field3
A        x        2.75
B        y         2
B        x         2
C        x         2

解决方案 »

  1.   

    select field1,field2,sum(field3)/count(field3)  from tab group by field1,field2
      

  2.   

    楼上的,我的结果是其实是按照ABC分组的,其中A又按XYZ分组汇总的
      

  3.   

    select field1,field2,avg(field3) from tab_name
    group by field1,field2;
      

  4.   

    group by field1,field2根本不能行成排序结果,二次分组排序必须用分析函数才行,如下rank() over (partition by XXX order by YYY)
      

  5.   

    按照LZ提出的问题,group by field1,field2 完全可以实现分组
    除非我理解错了LZ的问题意思
      

  6.   

    to chd2001
    你那种方法出来后FIELD排序是乱的
      

  7.   

    没必要那么麻烦吧.select field1,field2,avg(field3) from tab_name
    group by field1,field2;是可以的。----------------------------------------------------
    to chd2001
    你那种方法出来后FIELD排序是乱的
    乱的?那lz对于field2的要求是什么啊
      

  8.   

    想排成什么样的自己 + 个 order by 不就完了