查找特定日期范围内每天的总票数

时间:2014-07-30 08:47:50

标签: php mysql sql database

我正在尝试编写一个允许我执行以下操作的查询:

“在特定日期范围内查找每天打开和关闭的门票总数”。

这是我到目前为止所得到的

SELECT
COUNT(tikcet_id) as totalTickets, 
COUNT(CASE WHEN ticket_status = 'Complete' 
      THEN 1 
      ELSE NULL END) as closedTickets,
DATE(ticket_date)
FROM tickets 
WHERE (DATE(ticket_date) BETWEEN DATE('2014-07-18') AND DATE('2014-07-30'))
GROUP BY ticket_date

这是我得到的结果,它可以很好地计算门票,它不会按照我想要的方式对它们进行分组。

TotalTickets| ClosedTickets| ticket_date
           1|             0| 2014-07-21 10:00:00
           1|             0| 2014-07-21 10:21:21
           0|             1| 2014-07-21 11:45:12
           0|             1| 2014-07-22 09:21:24
           0|             1| 2014-07-22 09:43:23

我想按天分组,所以我应该能够看到类似的内容:

TotalTickets| ClosedTickets| ticket_date
           2|             1| 2014-07-21
           2|             0| 2014-07-22

1 个答案:

答案 0 :(得分:0)

制作本

GROUP BY DATE(ticket_date)

而不是

GROUP BY ticket_date

你已经在SELECT条款中正确地做了。

顺便说一句,这是一个较短的写作方式

COUNT(CASE WHEN ticket_status = 'Complete' 
      THEN 1 
      ELSE NULL END) as closedTickets,

SUM(ticket_status = 'Complete') as closedTickets,

布尔表达式评估为truefalse10

相关问题