gpt4 book ai didi

mysql - 如何计算 MySQL 查询中的多列数

转载 作者:行者123 更新时间:2023-11-29 08:08:35 24 4
gpt4 key购买 nike

我的网站中有两个表用于保存用户查询。一个用于票证,另一个用于票证回复。我想要的是计算总票数+总回复数+不同状态的总票数。我可以成功计算工单总数和回复总数,但在计算工单状态时遇到问题。

问题:当我使用以下查询时,它显示新票证和未结票证的总数,但由于查询是 JOIN 查询,它显示所有行的总状态(这意味着它显示所有回复而不是所有票证的状态总和)。

SELECT  COUNT(tr.ticketid) totalReplies, 
COUNT(DISTINCT(t.ticketid)) totalTickets,
SUM(CASE WHEN t.status='Open' THEN 1 END) totalOpen,
SUM(CASE WHEN t.status='Close' THEN 1 END) totalClose
FROM `tbl_ticket` t
INNER JOIN `tbl_ticket_reply` tr ON tr.ticketid = t.ticketid

希望我能说清楚。我将用一个例子来解释它。假设我们总共有以下记录:

total tickets: 10
total replies: 20

比方说,一半的门票是开放的,一半是关闭的。然后它应该显示 5 个打开,5 个关闭。但相反,它给出 10 个打开和 10 个关闭。

更新:我不想按状态对查询进行分组,因为这样会在状态之间分配我的总票证。

有什么帮助吗?谢谢

最佳答案

此代码可能适用于您的数据

SELECT  
COUNT(t.ticketid) AS totaltickets,
SUM(CASE WHEN t.status='Open' THEN 1 END) AS totalopen,
SUM(CASE WHEN t.status='Close' THEN 1 END) AS totalclose
,(
SELECT COUNT(*) FROM tbl_ticket t
LEFT JOIN tbl_ticket_reply tr ON t.ticketid=tr.ticketid
) AS total_replies
FROM tbl_ticket t

关于mysql - 如何计算 MySQL 查询中的多列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22194703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com