小弟在2000里有一个表(jstab1),该表有两个字段:time(时间类型)、temp(浮点型)。
time里存储的时间格式为:2009-10-23 11:23:34 的格式。
现在是想实现这样的查询:
如果 某天某时某分的temp数据有多条,那就取得这些数据的最小值、最大值和平均值,我不晓得怎么实现,
各位大侠,给点思路先!!!

解决方案 »

  1.   

    直接用min,max,avg函数不就行了
      

  2.   

    按条件分组,GROUP BY 日期格式转化,
    再用函数MIN,MAX..
      

  3.   

    select [time], min(temp)as '最小值',max(temp) as '最大值'
    ,avg(temp) as '平均值' from jstab1 group by [time] having count(1)>1
      

  4.   

    我可能没说清楚,我意思是说:
    如果数据库里存在相同时间的数据,如:同一天同一小时同一分钟,那么查询时只需取到该相同时间的最小值、最大值和平均值,具体时间是多少,就以time字段的时间为准,没有什么确切的时间。
      

  5.   

    是不是这样:
    select [time], min(temp)as '最小值',max(temp) as '最大值'
    ,avg(temp) as '平均值' from jstab1 group by [time] 
      

  6.   

    可time的格式是:年月日 时分秒;
    而我想查找的是:如果时间是同年同月同时同分,则取这些数据的最大、最小和平均值,但是这些时间可以秒不相同。
    也就是说同一分钟但不同秒,直接用groupby[time] 得到不行
      

  7.   

    select [time], min(temp)as '最小值',max(temp) as '最大值'
    ,avg(temp) as '平均值' from jstab1 group by convert(nvarchar(16),[time],120) 
      

  8.   


    把time 换成 left([time],16) 直接截取到分!
      

  9.   


    列 'jstab1.time' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    报这个错误啊~~~jwdream2008 兄的也是这个错误
      

  10.   

    select  convert(nvarchar(16),[time],120), min(temp)as '最小值',max(temp) as '最大值'
    ,avg(temp) as '平均值' from jstab1 group by convert(nvarchar(16),[time],120) 
      

  11.   

    搞定啦~~~~~太感谢jwdream2008 兄啦~~~
    结贴