现有一个表,结构如下:
id    comid     data      time
1       1        0.3     2004-5
1       2        0.4     2004-5
1       1        0.5     2004-6
1       2        0.6     2004-6
2       1        0.13    2004-5
2       2        0.27    2004-5
2       1        0.8     2004-6
2       2        0.4     2004-6先要求,把id相同,但属于不同公司(也就是comid不同)的某一时间(time)的data的平均值求出来。
也就是相当于要得到如下的结果:
id    avrageval    time
1        0.35     2004-5
1        0.55     2004-6
2        0.20     2004-5
2        0.60     2004-6谢谢指点,得到解答立即给分!

解决方案 »

  1.   

    select avg(data) as average_data
    from tab
    group by id
      

  2.   

    select id,avg(data) avrageval,time from t group by id,time
      

  3.   

    select id,avg(data),[time]
    from tablename
    group by id,[time]
      

  4.   

    select id,comid,avg(data) as avrageval,time 
    from t 
    group by id,comid,time
      

  5.   

    --这样的数据处理算?id    comid     data      time
    1       1        0.3     2004-5
    1       1        0.4     2004-5
    1       2        0.4     2004-5
    1       2        0.5     2004-5
    1       2        0.6     2004-5
    1       1        0.5     2004-6
    1       2        0.6     2004-6
    2       1        0.13    2004-5
    2       2        0.27    2004-5
    2       1        0.8     2004-6
    2       2        0.4     2004-6
      

  6.   

    select id,avg(data) avrageval,time from tabelname group by id,time order by id
      

  7.   

    倒不会出现zjcxc(邹建) 说的那种情况,但会出现以下这种情况
    id    comid     data      time
    1       1        0.3     2004-5
    1       1        0.5     2004-6
    1       2        0.6     2004-6
    2       1        0.13    2004-5
    2       2        0.27    2004-5
    2       1        0.8     2004-6
    2       2        0.4     2004-6不过这种情况也能用pbsql(风云) 的办法解决,只不过不能用函数
      

  8.   

    那就是完全与公司无关了,按time分组就行了.不用函数的话,那就用游标+临时表处理了.