the*_*net 5 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...
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
你可以做这样的事情 -
SELECT COUNT(ssn) AS patient_count, 'ssn' AS count_type
FROM patients
WHERE ssn="0000000000000000";
UNION
SELECT COUNT(firstname) AS patient_count, 'firstname' AS count_type
FROM patients
WHERE firstname="0000000000000000"
UNION
SELECT COUNT(lastname) AS patient_count, 'lastname' AS count_type
FROM patients
WHERE lastname="0000000000000000"
Run Code Online (Sandbox Code Playgroud)