2014-10-28 83 views
0

我有一個表格,其中包括每個廣告客戶在我們的系統中添加日期時間的統計信息。數據每小時更新一次,因此對於每個用戶的廣告,我們每小時都有展示數據。SQL獲取每日的最後日期時間

我希望能夠運行一個SQL查詢,爲每天的每個廣告提取最後一小時。

查詢我現在只提取最後一個輸入期......我如何修改此提取每個廣告客戶每個廣告的最後一個條目,以計算該一天的總印數....

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

使用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; 
相關問題