2012-11-03 49 views
3

我有點卡住試圖結合幾個查詢。 我得到的是表中持有的統計數據和對另一個表的引用。結合多個SQL查詢1

獲得統計報告我運行(短版):

SELECT COUNT(id) 
from [Actions] 
where date between '2012-01-01 00:00:00' AND '2012-01-01 23:59:59' 
    AND [Action]='request' 

的問題是,如果我想在指定的時間內就得到每一天的統計數據,如何把這個查詢是什麼樣子?我知道如果我更改開始日期和結束日期,我會統計整個指定期間,而不是按天分組。我錯過了什麼?

回答

3

只是GROUP BY date eleminating一部分時間,像這樣經過:

SELECT 
    CONVERT(VARCHAR(10), [date], 121) ByDay, COUNT(id) 
FROM [Actions] 
WHERE date BETWEEN '2012-01-01 00:00:00' AND '2012-01-01 23:59:59' 
    AND [Action]='request' 
GROUP BY CONVERT(VARCHAR(10), [date], 121) 
+0

我知道我失去了一些東西!謝謝,但我猜想正確的形式將是使用101而不是121來阻止查詢按分鐘和秒分組記錄。我對嗎? –

+0

@AlexD - 我認爲這兩個將爲你工作。 '121'將會起作用,因爲它只會通過僅僅是日期部分的'varchar(10)'獲得前10個字符。 –

+0

無論如何,非常感謝你提醒我GROUP BY是如何工作的! –