【发布时间】:2013-11-06 17:31:03
【问题描述】:
我正在尝试的东西有点复杂,我会尽力解释。
我完成了第一部分,即按小时对列求和。
示例
ID TIMESTAMP CUSTAFFECTED
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
输出将是
Hour TotalCALLS CUSTAFFECTED
10/1/2013 01:00 3 46
10/1/2013 02:00 1 3
10/1/2013 03:00 1 55
10/1/2013 04:00 1 12
10/1/2013 05:00 1 2369
10/1/2013 12:00 1 99
查询
SELECT TRUNC(STARTDATETIME, 'HH24') AS hour,
COUNT(*) AS TotalCalls,
sum(CUSTAFFECTED) AS CUSTAFFECTED
FROM some_table
where STARTDATETIME >= To_Date('09-12-2013 00:00:00','MM-DD-YYYY HH24:MI:SS') and
STARTDATETIME <= To_Date('09-13-2013 00:00:00','MM-DD-YYYY HH24:MI:SS') and
GROUP BY TRUNC(STARTDATETIME, 'HH')
我需要什么 我需要的总和 2 个查询并按时间戳/小时分组。第二个查询与第一个查询完全相同,只是 where 子句不同。
第二次查询
SELECT TRUNC(RESTOREDDATETIME , 'HH24') AS hour,
COUNT(*) AS TotalCalls,
SUM(CUSTAFFECTED) AS CUSTRESTORED
FROM some_table
where RESTOREDDATETIME >= To_Date('09-12-2013 00:00:00','MM-DD-YYYY HH24:MI:SS') and
RESTOREDDATETIME <= To_Date('09-13-2013 00:00:00','MM-DD-YYYY HH24:MI:SS')
GROUP BY TRUNC(RESTOREDDATETIME , 'HH24')
所以我需要减去 custaffected - custrestoed,然后显示总数。
我添加了指向 excel 文件的链接。 http://goo.gl/ioo9hg
谢谢
【问题讨论】:
-
请包含
some_table的完整sql查询和表架构。 -
感谢您指出。我更新了。
-
@CharlesBretana 什么是表架构,示例数据?
-
表模式,是列名和数据类型的列表。另外,不应该在第一个查询引用
STARTDATETIME和第二个查询RESTOREDDATETIME中首先输出列??
标签: sql oracle oracle11g timestamp where-clause