
使用mysql group by判断布尔值
问题:
如何使用mysql group by语句对布尔字段进行聚合,并分别统计为null、''(空字符)和有实际值的记录数量?
解决方案:
select
d.checks, count(d.checks)
from (select (
case clip_url_hash
when '' then '空字符串'
when null then 'NULL'
else '正常的' end
) as checks from text_meta_ingest) as d
group by d.checks;分析:
-
使用case when语句对clip_url_hash字段进行判断:
- 为空字符串时,返回“空字符串”
- 为null时,返回“null”
- 否则,返回“正常的”
- 将case when的判断结果用as checks起别名,并作为新的数据集d.checks
- 对d.checks数据集进行group by聚合,并统计各组的记录数量










