2013-11-01 24 views
1

我有3列SQL和數據通過小時

ID 
TIMESTAMP 
CALLS 

我需要按小時總結呼叫號碼。 例如

ID   TIMESTAMP   CALLS 
1  10-01-2013 01:00:23  23 
2  10-01-2013 03:00:23  55 
3  10-01-2013 05:00:23  2369 
4  10-01-2013 04:00:23  12 
5  10-01-2013 01:00:23  1 
6  10-01-2013 12:00:23  99 
7  10-01-2013 01:00:23  22 
8  10-01-2013 02:00:23  3 

輸出結果應該是這樣的

TimestampHOUR  Totalcalls 
    10/1/2013 01:00  46 
    10/1/2013 02:00  3 
    10/1/2013 03:00  55 
    10/1/2013 04:00  12 
    10/1/2013 05:00  2369 
    10/1/2013 11:00  99 

我已經嘗試過使用日期部分,時間(時間戳),但我想這不是我的版本的Oracle的支持。

回答

2
SELECT TRUNC(timestamp, 'HH24') AS hour, COUNT(*) AS TotalCalls 
FROM  some_table 
GROUP BY TRUNC(timestamp, 'HH24') 
+0

我得到的錯誤'ORA-01898:太多的精度specifiers'線3 – user206168

+1

@ user206168,是的,你應該改變''DD/MM/YYYY HH24 ''hh24''或簡單'hh''。 – danihp

+1

@danihp正確,謝謝。修正了我的答案。 – Mureinik

1

您應該將您的日期時間截斷爲小時,然後將小組截斷。樣本四捨五入至小時:

select TRUNC (sysdate,'hh') from dual 

see results