Sql 自行特定日期以来聚合查询中的事件计数
我需要使用SQL Server 2008按目标分析射击、命中和事件的数量。如果射门击中目标,则有发生事件的机会。我想知道上次比赛的日期,以及自上次比赛以来有多少次射中目标 我的输入表有点像这样:Sql 自行特定日期以来聚合查询中的事件计数,sql,sql-server-2008,Sql,Sql Server 2008,我需要使用SQL Server 2008按目标分析射击、命中和事件的数量。如果射门击中目标,则有发生事件的机会。我想知道上次比赛的日期,以及自上次比赛以来有多少次射中目标 我的输入表有点像这样: TargetList Site_Code Target_Code WEIGHT Client SiteA 00001 1 ClientName SiteA 00002 1 ClientName SiteA 00003
TargetList
Site_Code Target_Code WEIGHT Client
SiteA 00001 1 ClientName
SiteA 00002 1 ClientName
SiteA 00003 1 ClientName
SiteA 00004 1 ClientName
Attempts
ID Start_Time Client Target_Code
ID-0001 2017-01-24 01:35:30.000 ClientName 00001
ID-0002 2017-01-24 02:35:30.000 ClientName 00001
ID-0003 2017-01-24 03:35:30.000 ClientName 00001
ID-0004 2017-01-24 04:35:30.000 ClientName 00001
ID-0005 2017-01-24 05:35:30.000 ClientName 00001
ID-0006 2017-01-24 06:35:30.000 ClientName 00001
ID-0007 2017-01-24 07:35:30.000 ClientName 00001
ID-0008 2017-01-24 08:35:30.000 ClientName 00001
ID-0009 2017-01-24 09:35:30.000 ClientName 00001
ID-0010 2017-01-24 10:35:30.000 ClientName 00001
ID-0011 2017-01-24 11:35:30.000 ClientName 00001
ID-0012 2017-01-24 12:35:30.000 ClientName 00001
Hits
ID AttemptID Datetime ClientName TargetCode HitType
HT-0001 ID-0002 2017-01-24 02:35:30.000 ClientName 00001 Z5
HT-0002 ID-0003 2017-01-24 03:35:30.000 ClientName 00001 A1
HT-0003 ID-0004 2017-01-24 04:35:30.000 ClientName 00001 B5
HT-0004 ID-0006 2017-01-24 06:35:30.000 ClientName 00001 Z5
--Most recent Event below
HT-0005 ID-0008 2017-01-24 16:35:30.000 ClientName 00001 Z5
--4 Hits since the last Z5 event
HT-0006 ID-0009 2017-01-24 09:35:30.000 ClientName 00001 A1
HT-0007 ID-0010 2017-01-24 10:35:30.000 ClientName 00001 A1
HT-0008 ID-0011 2017-01-24 11:35:30.000 ClientName 00001 A1
HT-0009 ID-0012 2017-01-24 12:35:30.000 ClientName 00001 A1
以及我的预期产出:
SiteCode TargetCode CountOfAttempts CountofHits LastEvent HitsSinceLastEvent
SiteA 00001 12 9 2017-01-24 16:35:30.000 4
到目前为止,我的问题是:
select bp.Site_Code 'Site'
, bp.Target_Code 'Target'
, COUNT(ca.id) 'Count of Attempts'
, COUNT(htt.id) 'Count of Hits'
, lst.[Last Event] 'Last Event'
from (select Site_Code, Target_Code
from TargetList t
where t.WEIGHT > 0
and Client = 'ClientName') as bp
left join Attempts ca on bp.Target_Code = ca.Target_Code and ca.START_TIME > '20170130' and ca.Client = 'ClientName'
Left join HitInformation htt on htt.Attemptid = ca.id
left join (select ht.TargetCode 'Target'
, max(ht.datetime) 'Last Event'
from HitInformation ht
where rc.Client = 'ClientName'
and ht.DATETIME > '20170101'
and ht.HitType = 'Z5'
group by ht.TargetCode
) as lst on lst.TargetCode= bp.Target_Code
group by bp.Site_Code, bp.Target_Code, lst.[Last Event]
order by COUNT(ht.id)desc
我使用了一个子查询来确定Z5HIT的最后一个实例,但我很难得到自上次事件以来的点击数
我在谷歌上的努力包括“查找自事件sql server以来的总计”和“按行特定日期sql server计算的总计”,但我没有找到任何相关内容
我提前感谢您提供的任何帮助。上次点击后为什么会有点击?“我不明白。”vkp为这句话道歉。目标可以被多次击中。每次被击中,都有发生事件的机会。事件将在目标生命周期内多次发生。我想知道距离上次事件有多长时间了,有多少次点击没有触发事件。输出名称中已更正错误。