通常我对 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/