尝试返回已解决工单的所有用户的列表以及他们解决的工单数量。 此代码有效,但在 while 循环内查询似乎是不好的做法。
有没有更高效的方法?
//Get all users who have resolved a ticket
$stmt = $db->prepare("SELECT DISTINCT resolvedby FROM tickets");
$stmt->execute();
while($rows = $stmt->fetch()){
$user = $rows['resolvedby'];
echo "$user "; //Echo each user
$new = $db->prepare("SELECT count(resolvedby) as total FROM tickets WHERE resolvedby = :u ");
$new->bindParam('u',$user);
$new->execute();
$row = $new->fetch();
echo $row['total']; //Echo the total of each user
echo "<br />";
}
返回:
User Total Resolved
Shawn 40
David 38
Jeff 52
Frank 47
最佳答案
您需要将 group by 与聚合函数计数一起使用:
SELECT
resolvedby
, COUNT(*) AS total
FROM
tickets
GROUP BY
resolvedby
当然,您希望使用某些 WHERE 子句来限制结果。
关于php - MYSQL 具有总计的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55233116/