php - count 子句输出数据库中的所有记录 - mysql

标签 php mysql database count

我一直在尝试不同的组合,但我似乎无法让它发挥作用。我有内部联接表,我想计算记录中找到的 QA 问题的数量,并输出那些仅包含 QA 问题的记录,我该怎么做?

SELECT d.department, m.mo_number, m.part_number, c.category,
COUNT(CASE WHEN c.category = 'QA ISSUE' THEN category END) as qa_issue,
SUM(CASE WHEN c.category = 'QA ISSUE' THEN time_spent END) as time_spent
FROM       master as m
INNER JOIN category as c ON c.cat_id = m.cat_id
INNER JOIN department as d ON d.dept_id = m.dept_id
WHERE m.date_created >= DATE_SUB(now(), INTERVAL 50 DAY) AND
d.department = 'Electronics'
GROUP BY m.mo_number
ORDER BY 1

最佳答案

要按聚合过滤结果,请使用 GROUP BY 子句之后出现的 HAVING 子句。请注意,这不能替代 WHERE 子句(它选择要聚合的行)。

SELECT
      d.department
    , m.mo_number
    , m.part_number
    , c.category
    , COUNT(*) AS qa_issue
    , SUM(time_spent) AS time_spent
FROM master AS m
      INNER JOIN category AS c ON c.cat_id = m.cat_id
      INNER JOIN department AS d ON d.dept_id = m.dept_id
WHERE m.date_created >= DATE_SUB(now(), INTERVAL 50 DAY)
      AND d.department = 'Electronics'
      AND c.category = 'QA ISSUE'
GROUP BY
      d.department
    , m.mo_number
    , m.part_number
    , c.category

HAVING COUNT(*) = 1

ORDER BY
      d.department

我还向 where 子句添加了一个条件,并将所有非聚合列添加到 GROUP BY 子句中 - 我建议您始终这样做。

关于php - count 子句输出数据库中的所有记录 - mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34870695/

相关文章:

php - 如何从上传文件夹中删除文件

python - 'numpy.float6 4' object has no attribute ' translate' 在 Python 中向 Mysql 插入值

javascript - 类型 'number' 与类型 'FindOneOptions<Client>' 没有共同属性

php - 为什么我上传的数据被重命名,并且相应的数据被添加到不同的行?

MySQL 全文(非)搜索

php - Doctrine,symfony2 正确的列类型用于计算小时数

database - UML 状态图 + 导航栏 + 多个退出操作

php - 在 Drupal 中使用 Apache Solr 按版本索引而不是节点

php - json_decode - 返回 NULL

PHP json_decode 返回 null