MYSQL按小时分组,包含2列计数

MYSQL按小时分组,包含2列计数,mysql,grouping,Mysql,Grouping,我正在为我的服务台创建一个仪表板,并希望创建一个记录的vs已解决事件图,但无法计算出什么查询将在一个步骤中为我提供所需的结果(最终将由php执行) 我想从中获取结果的数据是: Logdatex-记录票证的unix时间戳 Resolve_datex-记录票据的unix时间戳 我的数据看起来像(一个小样本,因为我每天处理200多条记录): 我要寻找的输出类型是: +------+--------+----------+ | Hour | Logged | Resolved | +------+---

我正在为我的服务台创建一个仪表板,并希望创建一个记录的vs已解决事件图,但无法计算出什么查询将在一个步骤中为我提供所需的结果(最终将由php执行)

我想从中获取结果的数据是:
Logdatex-记录票证的unix时间戳
Resolve_datex-记录票据的unix时间戳

我的数据看起来像(一个小样本,因为我每天处理200多条记录):

我要寻找的输出类型是:

+------+--------+----------+
| Hour | Logged | Resolved |
+------+--------+----------+
|  8   |   19   |   0      |
|  9   |   25   |   15     |
|  10  |   23   |   21     |
|  11  |   20   |   29     |
|  12  |   18   |   33     |
+------+--------+----------+
我可以很容易地获得信息使用2个查询,但只想使用一个。我可以用来获取数据的两个查询是:
一,

二,


尝试下面的查询。希望对你有帮助

                            SELECT FIELD, SUM(cnt)
                            FROM (
                              SELECT HOUR (FROM_UNIXTIME(logdatex)) AS FIELD, COUNT(HOUR (FROM_UNIXTIME(logdatex))) AS cnt
                              FROM mytable
                              GROUP BY HOUR (FROM_UNIXTIME(logdatex))
                              UNION ALL
                              SELECT HOUR (FROM_UNIXTIME(resolve_datex)) AS FIELD, COUNT(HOUR (FROM_UNIXTIME(resolve_datex))) AS cnt
                              FROM mytable
                              GROUP BY HOUR (FROM_UNIXTIME(resolve_datex))
                            ) AS combined_table
                            GROUP BY FIELD

所以。。。在对我的电脑进行了大量的查看和咒骂之后,我发现使用MYSQL 4.0.16是不可能的,因为它不支持嵌套的select语句。大多数情况下,您可以使用case语句,但不能将小时列分组在一起。看起来我将学习更多的PHP,以便从两个查询中获得结果并显示在一个表中。

请确保您的预期输出与给定的示例数据集匹配。此外,编辑问题以添加最新的代码我怀疑这些查询是否有效MySQL通常不允许在函数调用中使用空格,如
HOUR(
…在MySQL 4.0.16上使用HeidiSQL 9.5进行查询(我知道非常旧的版本,但我无法升级)您可以使用
right join
将第二个查询的结果添加到第一个查询,不是吗?
SELECT HOUR (from_unixtime(logdatex)), COUNT(HOUR (from_unixtime(logdatex)))
FROM mytable
WHERE from_unixtime(logdatex) > NOW() - INTERVAL 11 HOUR
GROUP BY HOUR (from_unixtime(logdatex))
SELECT HOUR (from_unixtime(resolve_datex)), COUNT(HOUR (from_unixtime(resolve_datex)))
FROM mytable
WHERE from_unixtime(resolve_datex) > NOW() - INTERVAL 11 HOUR
GROUP BY HOUR (from_unixtime(resolve_datex))
                            SELECT FIELD, SUM(cnt)
                            FROM (
                              SELECT HOUR (FROM_UNIXTIME(logdatex)) AS FIELD, COUNT(HOUR (FROM_UNIXTIME(logdatex))) AS cnt
                              FROM mytable
                              GROUP BY HOUR (FROM_UNIXTIME(logdatex))
                              UNION ALL
                              SELECT HOUR (FROM_UNIXTIME(resolve_datex)) AS FIELD, COUNT(HOUR (FROM_UNIXTIME(resolve_datex))) AS cnt
                              FROM mytable
                              GROUP BY HOUR (FROM_UNIXTIME(resolve_datex))
                            ) AS combined_table
                            GROUP BY FIELD