Sql server 获取一个月内每天的平均时间-SQL Server

Sql server 获取一个月内每天的平均时间-SQL Server,sql-server,Sql Server,我的系统中有这些数据。在NVARCHAR类型中具有持续时间列 | Site | Application | Time Checked | Duration | ------------------------------------------------------ A AAAA 1/11/2016 12:00AM 5.0s B AAAA 1/11/2016 12:00AM 4.0s

我的系统中有这些数据。在
NVARCHAR
类型中具有持续时间列

 | Site | Application |    Time Checked    | Duration |
 ------------------------------------------------------
    A        AAAA       1/11/2016 12:00AM      5.0s
    B        AAAA       1/11/2016 12:00AM      4.0s
    A        BBBB       1/11/2016 12:00AM      5.0s
    B        BBBB       1/11/2016 12:00AM      4.0s
    A        AAAA       1/11/2016 12:30AM      5.0s
    B        AAAA       1/11/2016 12:30AM      4.0s
    A        BBBB       1/11/2016 12:30AM      5.0s
    B        BBBB       1/11/2016 12:30AM      4.0s
 ......................................................
    A        AAAA       1/11/2016 11:00PM      5.0s
    B        AAAA       1/11/2016 11:00PM      4.0s
    A        BBBB       1/11/2016 11:00PM      5.0s
    B        BBBB       1/11/2016 11:00PM      4.0s
    A        AAAA       1/11/2016 11:30PM      5.0s
    B        AAAA       1/11/2016 11:30PM      4.0s
    A        BBBB       1/11/2016 11:30PM      5.0s
    B        BBBB       1/11/2016 11:30PM      4.0s
    A        AAAA       1/12/2016 12:00AM      5.0s
    B        AAAA       1/12/2016 12:00AM      4.0s
    A        BBBB       1/12/2016 12:00AM      5.0s
    B        BBBB       1/12/2016 12:00AM      4.0s
    A        AAAA       1/12/2016 12:30AM      5.0s
    B        AAAA       1/12/2016 12:30AM      4.0s
    A        BBBB       1/12/2016 12:30AM      5.0s
    B        BBBB       1/12/2016 12:30AM      4.0s
 ......................................................
    A        AAAA       1/12/2016 11:00PM      5.0s
    B        AAAA       1/12/2016 11:00PM      4.0s
    A        BBBB       1/12/2016 11:00PM      5.0s
    B        BBBB       1/12/2016 11:00PM      4.0s
    A        AAAA       1/12/2016 11:30PM      5.0s
    B        AAAA       1/12/2016 11:30PM      4.0s
    A        BBBB       1/12/2016 11:30PM      5.0s
    B        BBBB       1/12/2016 11:30PM      4.0s
每天,我的系统每小时检查持续时间2次(从NN:00 AM/PM开始,下一次是NN:30 AM/PM),我需要获得整个月内不同站点和应用程序每天持续时间的总平均值

像这样

 | (Site A) Ave.Duration | Day Time Checked | Application |
          5.4 s               1/11/2016          AAAA
          5.4 s               1/12/2016          AAAA
          5.4 s               1/13/2016          AAAA
 ..........................................................
          5.4 s               1/11/2016          BBBB
          5.4 s               1/12/2016          BBBB
          5.4 s               1/13/2016          BBBB
 ..........................................................
有人能帮我吗?我已经在这里讨论了不同的问题

但我还是不太明白

你的答案会很有帮助。

试试这个:一个完整的


在VARCHAR列中存储持续时间是个坏主意。为什么不使用INT列?然后看看函数。@TT我知道这是个坏主意。:)谢谢你提醒我。但我真的需要一个输出帮助。链接有很多好的例子。尝试一些东西,如果失败了,你的问题应该包括你尝试了什么。我们可以从那里帮助你。德国劳埃德船级社@谢谢。我试试看,汉克斯兄弟。我会试试这个。顺便说一句,duration列是NVARCHAR类型的。我的文章中有印刷错误。很抱歉无论如何。我尝试了你的代码,它可以在#Test1中创建的表上运行,但是当我在我的数据库上尝试时。“将数据类型varchar转换为数值时出错。”@Elphrian您的第一反应应该是将列更改为包含INT值!为什么要对自己施加压力?如果您想可视化程序中的秒数,请在表示层中添加该
s
create table 
#test1
(
site char(1),
apl char(10),
timechecked datetime,
duration real,
)

insert into #test1
select 
'A','AAAA','1/11/2016 12:00AM',5.0s
union all
select
'B','BBBB','1/11/2016 12:30AM',4.0s
union all
select 
'A','BBBB','1/12/2016 12:00AM',5.0s

--nromal method
;with cte
as
(
select duration,convert(varchar(2),datepart(day,timechecked))+'/'+
convert(varchar(2),datepart(month,timechecked))+'/'+
convert(varchar(4),datepart(year,timechecked)) as datetimee,
apl
from
#test1
)
select 
avg(duration) as avgduration,
datetimee,apl
from
cte
group by datetimee,apl

---using window functions
;with cte
as
(
select duration,convert(varchar(2),datepart(day,timechecked))+'/'+
convert(varchar(2),datepart(month,timechecked))+'/'+
convert(varchar(4),datepart(year,timechecked)) as datetimee,
apl
from
#test1
)

select
avg(duration) over (partition by datetimee order by datetimee ) as avgduration,
datetimee,
apl
from cte