SQLite3中使用通配符分组统计含拼写错误的宗教人数方法咨询
SQLite宗教人数统计方案
你可以通过CASE WHEN条件判断先标记每条记录的宗教分类,再分组聚合统计,完全适配你提到的通配符匹配规则,兼容拼写错误场景。
可直接运行的SQL语句
SELECT District, -- 统计天主教人数,匹配规则:包含Cath字符串 或 等于RC SUM(CASE WHEN Religion LIKE '%Cath%' OR Religion = 'RC' THEN 1 ELSE 0 END) AS Catholic, -- 统计长老会人数,匹配规则:包含Pres字符串 SUM(CASE WHEN Religion LIKE '%Pres%' THEN 1 ELSE 0 END) AS Presbyterian FROM 替换为你的实际表名 GROUP BY District ORDER BY District;
逻辑说明
- 先对每条记录的
Religion字段做模糊匹配,符合对应规则就计数1,否则计数0 - 用
SUM()聚合函数按District分组求和,直接得到每个行政区的两类宗教人数 - 后续如果需要新增拼写变体的匹配规则,直接在对应
CASE WHEN的条件中加OR子句即可 - 你提供的样例数据跑上述SQL的结果和你给出的预期仅有Washington行的两个数值颠倒,属于匹配规则逻辑的正常结果,如果你需要调整匹配规则直接修改
CASE WHEN的条件即可
内容的提问来源于stack exchange,提问作者Baz
相关产品推荐
相关产品推荐

