SQL获取每天的最后日期时间

时间:2014-10-28 15:00:03

标签: sql sql-server

我有一张表格,其中包含添加日期时间的系统中每个广告客户广告的统计信息。数据每小时更新一次,因此对于每个用户的广告,我们每小时都会有一次展示数据。

我希望能够运行一个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

感谢任何帮助!!!!

1 个答案:

答案 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;