MySQL使用所谓的COUNT
函数时无法计算null值。
例如,我们有一个简单的表:
supplier_id supplier_name state
1 IBM CA
2 Microsoft
3 NVIDIA
此查询:
SELECT
state
, COUNT(state)
FROM atable
GROUP BY state
;
将返回
CA 1
我如何修改它以向我展示表的真实本质,即
CA 1
NULL 2
只需使用 count(*)
用nulls计数行。
SELECT state, count(*) FROM atable GROUP BY state;
count(*)
和count(state)
之间的区别在于以前不计算null值。您可能会在文档中找到详细信息和示例。
使用cocece:
SELECT ...., COUNT (COALESCE (state, 'unknown')) ....