有这样的一个表,表名字tempDATA 字段分别为DATETIME ,SITE_ID ,INFECTANT_ID,ACTUAL_VALUEDATETIME ,   SITE_ID ,    INFECTANT_ID,    ACTUAL_VALUE
2004-12-17    0012         001               10
2004-12-17    0012         002               20
2004-12-17    0012         001               30
2004-12-17    0012         002               402004-12-18    0012         001               20
2004-12-18    0012         002               30
2004-12-18    0012         001               40
2004-12-18    0012         002               502004-12-19    0012         001               30
2004-12-19    0012         002               40
2004-12-19    0012         001               50
2004-12-19    0012         002               60SELECT AVG(ACTUAL_VALUE) AS Expr1
FROM tempDATA
WHERE (DATETIME >= '2004-12-17') AND 
      (DATETIME < '2004-12-18') AND (SITE_ID = '0012')
GROUP BY INFECTANT_ID
的到的结果是'2004-12-17'的ACTUAL_VALUE平均
20
30这样的到的某一天的平均值,
我想得到  例如这样 给个时间范围  DATETIME >= '2004-12-17' DATETIME < '2004-12-19'
这样三天的  的  各自的平均值,该怎么样写这个数据库语句的到的结果是'2004-12-17' 
20   
30   
是'2004-12-18' 
30
40
是'2004-12-17' 
40
50
该怎么样写这个sql 语句

解决方案 »

  1.   

    select DATETIME,SITE_ID,INFECTANT_ID,avg(ACTUAL_VALUE) from 表 group by DATETIME,SITE_ID,INFECTANT_ID
      

  2.   

    谢谢 scmail81(琳·风の狼(修罗)) (  
    如果我的表里的  时间是这样的
    2004-12-17 12:00:00
    2004-12-17 13:00:00
    我看他是按照这个排列的,如果我就按照2004-12-17  忽略后面的时间 怎样截取呢
      

  3.   

    select convert(char(10),DATETIME,120) as DATETIME ,SITE_ID,INFECTANT_ID,avg(ACTUAL_VALUE) from 表 group by convert(char(10),DATETIME,120),SITE_ID,INFECTANT_ID