Zenoss MySQL查询 - 每小时事件

时间:2013-09-19 20:56:26

标签: mysql sql zenoss

我正在研究一些趋势/分析工具,并且想要查询事件MySQL数据库中的每小时事件度量标准,以便我可以将度量标准作为石墨中的数据点发送出去。因为一些事件将在状态表中,而在历史表中的其他事件,我想出了我正在寻找的基本查询。请记住,我绝不是DBA,我想学习如何从两个表中获得总计数。以下是我到目前为止的情况:

mysql> SELECT COUNT(*) FROM events.history WHERE firstTime > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 HOUR)) AND (severity='5' OR severity='3')
-> UNION
-> SELECT COUNT(*) FROM events.status WHERE firstTime > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 HOUR)) AND (severity='5' OR severity='3')
-> ;
+----------+
| COUNT(*) |
+----------+
|       27 | 
|      267 | 
+----------+
2 rows in set (0.00 sec)

mysql>

我希望修改SQL以返回单行,并添加两个表的计数,因此在示例中它将是294.有人告诉我,我可以通过连接完成此操作,但我似乎是在获取语法时遇到一些麻烦。

1 个答案:

答案 0 :(得分:0)

将联合放在子查询中,然后使用SUM()将它们添加到一起。

SELECT SUM(c) total
FROM (SELECT COUNT(*) c FROM events.history WHERE firstTime > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 HOUR)) AND (severity='5' OR severity='3')
      UNION
      SELECT COUNT(*) c FROM events.status WHERE firstTime > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 HOUR)) AND (severity='5' OR severity='3')
     ) u