php - MYSQL 具有总计的不同值

标签 php mysql count distinct

尝试返回已解决工单的所有用户的列表以及他们解决的工单数量。 此代码有效,但在 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/

相关文章:

python - Django+mySQL+virtualenv的问题

.net - DotNET 应用程序中的 GDI 句柄

php - 如何在 codeigniter 3 数据库中设置 session ?

mysql Select 返回零

php - 以时间间隔批量访问 URL PHP MySQL

c++ - valgrind 报告 mysql_real_connect 泄漏

hash - 如何获得no的计数。 perl 6 %HASH 中的键数?

SQL COUNT 条记录在表 2 JOINS 掉

php - 如何使用不带where条件的mysql查询从表中获取特定行值

PHP 字符串中的变量 字符串中的变量