我有一张表格,其中包含添加日期时间的系统中每个广告客户广告的统计信息。数据每小时更新一次,因此对于每个用户的广告,我们每小时都会有一次展示数据。
我希望能够运行一个SQL查询,提取每天每个广告的最后一小时。
我现在的查询,仅提取最后一个输入期间...如何修改此项以提取每个广告客户的每个广告的最后一个条目,以计算该一天的总展示次数.... / p>
DECLARE @adid INT
SET @adid = 596749
SELECT t1.*
FROM stats t1
WHERE t1.dateadded = (
SELECT max(dateadded)
FROM stats t2
WHERE t1.name = t2.name
) AND advertiserID = @adid
感谢任何帮助!!!!
答案 0 :(得分:0)
使用ROW_NUMBER()
:
;WITH CTE AS
(
SELECT *,
RN = ROW_NUMBER() OVER(PARTITION BY CONVERT(VARCHAR(8),dateadded,112)
ORDER BY dateadded DESC)
FROM dbo.[stats]
WHERE advertiserID = @adid
)
SELECT *
FROM CTE
WHERE RN = 1;