Zenoss MySQL Query - 每小时事件数



我正在研究一些趋势/分析工具,并希望在事件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。有人告诉我,我可以通过联接来完成此操作,但我似乎在拨入语法时遇到了一些麻烦。

将联合放在子查询中,然后使用 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

相关内容

  • 没有找到相关文章

最新更新