A. sql怎么算每一天近几天的平均值
关联查询,表与自身做关联,假设别名分别是a和b,条件是a表中时间在b表中时间的近几天区间内,然后以a表的时间和b表的avg作为查询字段,最后加一个group by a表的时间即可。
B. sql server存储过程根据时间参数 求任意时间段数据平均值 求帮忙非常感谢
参数: @StartDate
@EndDate
select avg(DO),agv(CODR)
from TableName
where Create_Date >= @SatrtDate
and Create_Date <= @EndDate
--这样,直接用平均函数,不行吗?
C. 如何用SQL求各分钟内记录的平均值
SELECT ID,convert(varchar(5),Time,120),avg(sum(speed)) from table_name
group by ID,convert(varchar(5),Time,120)
convert(varchar(5),Time,120) 看时间的前五个字节 意思是到分为止
avg(sum(speed)) 把一分钟内的速度加总 然后平均值
D. sql 求一列中某一时间段的平均值
select avg() from a where riqi between 20000115 and 20000123;
有问题欢迎继续提问,请采纳吧!
E. SQL 两个时间列相减,并求出平均值
可以用这样的语句:如2个时间字段是begindate,enddate,单位用小时。
select avg(h) from
(
select datediff(hh,begindate,enddate) h from table
) a
如果要把时间相加的单位改成天,周等,只要该datediff里的hh改成day,week就可以了
F. 关于用sql语句求平均值,就是把一个表中的所有字段按时间字段的小时来求平均值,而不是按时间段求
--已出结果 SQLSERVER2000
--生成测试数据
CREATE TABLE TestA
(
a int,
b int,
c int,
time datetime
)
INSERT INTO TestA
SELECT 12,13,45,'2009-6-9 10:59:26'
UNION ALL
SELECT 11,41,43,'2009-6-9 10:59:30'
UNION ALL
SELECT 10,75,742,'2009-6-9 11:00:40'
UNION ALL
SELECT 78,72,56,'2009-6-9 11:30:50'
UNION ALL
SELECT 52,11,55,'2009-6-9 12:00:42'
UNION ALL
SELECT 11,41,43,'2009-6-9 12:59:30'
--查询结果
SELECT A*1.0/FCount AS A平均值,B*1.0/FCount AS B平均值,C*1.0/FCount AS C平均值,Time
FROM(
SELECT SUM(a)AS A,SUM(b)AS B,SUM(c)AS C,
CONVERT(char(10),time,121)+' '+LTRIM(DATEPART(hour,time))+':00:00' AS Time,COUNT(*)AS FCount
FROM TestA
GROUP BY CONVERT(char(10),time,121),DATEPART(hour,time)
)AS T
--SELECT 1/2 =0 SELECT 1./2 =0.5 SELECT 1.0/2=0.5
G. 获取一个时刻开始60分钟的,每分钟数据的平均值sql怎么写,mysql的
函数UNIX_TIMESTAMP(createtime)把时间转换成UNIX时间戳,也就是与1970年1月1日的秒数差,因为你是要求按每分钟,所以DIV 60把秒转换成分钟,通过GROUP BY把数据分组,用AVG函数求出每个分组的平均值。
SELECT (UNIX_TIMESTAMP(createtime) DIV 60)
, AVG(stquantity) AS stquantity
, AVG(indoortemperature) AS indoortemperature
, AVG(indoorhumidity) AS indoorhumidity
, AVG(carbondioxide) AS carbondioxide
, AVG(voc) AS voc
FROM 表名
GROUP BY UNIX_TIMESTAMP(createtime) DIV 60
H. SQL 按时间字段每天分四个部分提取平均值
比如:
select case when convert(varchar(8),时间,108) between '00:00:00' and '05:59:59' then convert(varchar(10),时间,120) + '-1'
when convert(varchar(8),时间,108) between '06:00:00' and '11:59:59' then convert(varchar(10),时间,120) + '-2'
when convert(varchar(8),时间,108) between '12:00:00' and '17:59:59' then convert(varchar(10),时间,120) + '-3'
when convert(varchar(8),时间,108) between '18:00:00' and '23:59:59' then convert(varchar(10),时间,120) + '-4' end 时间段,
avg(值) 平均值
group by
case when convert(varchar(8),时间,108) between '00:00:00' and '05:59:59' then convert(varchar(10),时间,120) + '-1'
when convert(varchar(8),时间,108) between '06:00:00' and '11:59:59' then convert(varchar(10),时间,120) + '-2'
when convert(varchar(8),时间,108) between '12:00:00' and '17:59:59' then convert(varchar(10),时间,120) + '-3'
when convert(varchar(8),时间,108) between '18:00:00' and '23:59:59' then convert(varchar(10),时间,120) + '-4' end
I. ACCESS SQL语句 指定日期间, 昼间(就是白天比如6:00--18:00)平均数据SQL怎么写
我模拟了你的数据。你要的结果是这样的吧:
转化为SQL语句则如下:
SELECTDateValue([时间])AS日期,Avg(数据)AS指定时间的平均值
FROM表4
WHERETimeValue([时间]) Between#6:0:0#And#18:0:0#
GROUPBYDateValue([时间]);
说明:datevalue()函数返回时间的“年月日”;timevalue()函数返回时间的“分时秒”。
J. 求帮助,SQL统计某一状态下的时间平均值
select a.*,datediff(ss,a.deCreateDatetime_datetime,b.deCreateDatetime_datetime)/2 as 时间差的平均值,
(select top 1 deCreateDatetime_datetime from myOrder_DE d where deType_nvarchar<>N'IR'
and d.deCreateDatetime_datetime>a.deCreateDatetime_datetime order by d.deCreateDatetime_datetime)
as IR下一个状态的时间
from myOrder_DE a inner join myOrder_DE b
on a.deType_nvarchar=N'IR'
and a.deid_int<>(select max(deid_int) from myOrder_DE where deType_nvarchar=N'IR')
and b.deid_int=(select top 1 deid_int from myOrder_DE
where deid_int<(select top 1 deid_int from myOrder_DE c
where c.deType_nvarchar=N'IR' and c.deid_int>a.deid_int order by c.deid_int) order by deid_int desc)
order by b.deCreateDatetime_datetime