MySQL:如何分别从列中计数?

标签 mysql select count

通常我对 SQL 查询很有信心,但是这个让我摸不着头脑。我觉得这 - 应该 - 是一个快速解决方案,但我只是没有看到它。

我正在尝试在一个查询中对同一张表中的多个值进行计数。

不要介意“0000000000000000”,它只是代表一个空字节数组。

是否有一种简单的方法来组合这些查询?

SELECT COUNT(ssn)
FROM patients
WHERE ssn="0000000000000000";

SELECT COUNT(firstname)
FROM patients
WHERE firstname="0000000000000000"

SELECT COUNT(lastname)
FROM patients
WHERE lastname="0000000000000000"

etc...

最佳答案

SELECT SUM(CASE WHEN ssn = '0000000000000000' THEN 1 ELSE 0 END) AS ssn_count,
       SUM(CASE WHEN firstname = '0000000000000000' THEN 1 ELSE 0 END) AS first_count,
       SUM(CASE WHEN lastname = '0000000000000000' THEN 1 ELSE 0 END) AS last_count
    FROM patients
    WHERE ssn = '0000000000000000'
        OR firstname = '0000000000000000'
        OR lastname = '0000000000000000'

关于MySQL:如何分别从列中计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275649/

相关文章:

php - Yii 应用程序未激活的触发器

php - 将多个文件上传到新创建的目录

具有 group by 和 join 的 MySQL 聚合函数

mysql - 是否可以对每个选择使用不同的 where 子句进行 mysql 查询?

python - Pandas 的每日频率计数

python - 即使数据不存在,也收集数据、计数并返回字典列表

php - Current_timestamp 未显示本地时间

mysql - 联合选择列不匹配

mysql - 嵌套集查询以检索每个节点的所有祖先

python - 将列转换为包含列值计数的列标题