【发布时间】:2014-06-12 08:41:04
【问题描述】:
我有一张桌子可以保存电话记录。我需要在特定日期范围(例如 3 月 1 日到 3 月 5 日)内每小时(例如 8:00 到 9:00)得到应答和未应答的呼叫计数,我不需要分隔日期,只需要分隔小时。
我已经使用了这个查询:
SELECT `event`, DATE(`time`) AS `date`, HOUR(`time`) AS `hour`, COUNT(*) AS `count` FROM `queue_log` WHERE `queuename` = 'Hozoori_Q' AND `event` IN ('CONNECT', 'RINGNOANSWER') AND `time` >= '2014-03-01' AND `time` <= '2014-03-05' GROUP BY `event`, `date`, `hour`;
“事件”字段是呼叫状态。
这个查询输出是这样的:
1 =>
array (size=4)
'event' => string 'CONNECT' (length=7)
'date' => string '2014-03-01' (length=10)
'hour' => string '9' (length=1)
'count' => string '99' (length=2)
2 =>
array (size=4)
'event' => string 'RINGNOANSWER' (length=7)
'date' => string '2014-03-01' (length=10)
'hour' => string '9' (length=1)
'count' => string '5' (length=2)
但我想变成这样:
1 =>
array (size=4)
'date' => string '2014-03-01' (length=10)
'hour' => string '9' (length=1)
'answered_count' => string '99' (length=2)
'not_answered_count' => string '5' (length=2)
有什么解决办法吗?
【问题讨论】:
-
请提供一些示例数据和所需的输出
-
您需要将其作为 SQL 还是一段简单的 PHP 代码来操作您当前的结果数组?
-
@Mark:我需要这个作为 SQL 结果而不是使用 php 循环。
-
@raheelshan:我想要的输出是上面提到的第二个示例数组,数据存储在包含太多字段的表上,但重要的字段是时间和事件,如果 event = CONNECT表示已接听电话,如果 event = RINGNOANSWER 表示未接听电话。
-
@Ordidaad - 我不确定你是否同时标记了
mysql和arrays,这表明 PHP 中的数组操作与 SQL 查询一样有效
标签: php mysql sql arrays database