现有表 A:
字段1为字符型,字段2为字符型,字段3为数值型
——————————————————————
表A内容如下。
-------------------------------------------
字段1      字段2           字段3
2001        wm             12.5
2001        wm             12.5
2001        wm             0
2001        wm             14
2002        wm             11
2002        wm             12
2002        wm             13现在要求以下结果:
-------------------------------------------
字段1      字段3的平均值(不把等于0的算在内)
2001        13.5
2002        12
-------------------------------------------
请高手们指教

解决方案 »

  1.   

    select 字段1 ,avg(字段3) as avg_字段3
    from A
    group by 字段1
      

  2.   

    select 字段1 , avg(字段3)
    from 表A
    where 字段3 > 0
    group by 字段1
      

  3.   

    select 字段1,avg(字段3) AS 字段3的平均值 from A where 字段3<>0
      

  4.   

    --忘了 group by select   字段1,avg(字段3)   AS   字段3的平均值   from   A   where   字段3 <> 0  group by 字段1
      

  5.   


    select 字段1 ,avg(字段3) 字段3的平均值
    from A where 字段3>0
    group by 字段1
      

  6.   

    对了,本人还有点没有说明,那就是后面还有一个字段4,
    字段4也是数值型的,我还得对字段4进和求和。
    select 字段1 , avg(字段3>0),sum(字段落4)
    from 表A
    group by 字段1
      

  7.   

    对了,本人还有点没有说明,那就是后面还有一个字段4,
    字段4也是数值型的,我还得对字段4进和求和。
    -----------------------------------------------
    后面的where要求不对    字段3>0   进行限制我用以下语句无法实现。
    ——————————————————————
    select   字段1   ,   avg(字段3> 0),sum(字段落4)
    from   表A
    group   by   字段1
    ——————————————————————
      

  8.   

    select 字段1 ,avg(字段3) as avg_字段3,sum(字段4)
    from A
    where 字段3 <> 0
    group by 字段1
      

  9.   

    对了,本人还有点没有说明,那就是后面还有一个字段4,
    字段4也是数值型的,我还得对字段4进和求和。
    -----------------------------------------------
    后面的where要求不对 字段3>0  进行限制我用以下语句无法实现。
    —————————————————————— 
    select 字段1,vg(字段3>0),sum(字段落4)
    from 表A group by 字段1 
      

  10.   

    对了,本人还有点没有说明,那就是后面还有一个字段4,
    字段4也是数值型的,我还得对字段4进和求和。
    -----------------------------------------------
    后面的where要求不对 字段3>0  进行限制我用以下语句无法实现。
    —————————————————————— 
    select 字段1,vg(字段3>0),sum(字段落4)
    from 表A group by 字段1 
      

  11.   

    你的意思是不要where 语句?
      

  12.   

    select   字段1   ,sum(字段3)/sum(case 字段3 when 0 then 0 else 1 end )   as   avg_字段3,sum(字段4) 
    from   A 
    where   字段3   <>   0 
    group   by   字段1
      

  13.   

    select   字段1   ,sum(字段3)/sum(case 字段3 when 0 then 0 else 1 end )   as   avg_字段3,sum(字段4) 
    from   A 
    group   by   字段1
      

  14.   

    select a.Field1, avg(a.Field3) as avg_Field3, sum(a.Field4) as sum_Field4
    from (Select Field1, Field2, Field3, Field4 From Table1 Where Field3<>0) as a
    group by a.Field1