统计多字段组合次数应使用 GROUP BY 多列配合 COUNT(),如 SELECT city, industry, COUNT() FROM companies GROUP BY city, industry;非聚合字段须全在 GROUP BY 中,过滤分组结果用 HAVING,补全缺失组合需 CROSS JOIN 加 LEFT JOIN,高频组合字段应建顺序一致的联合索引。

要统计多个字段组合出现的次数,核心是用 GROUP BY 多个列 配合 COUNT(*),而不是嵌套或拼接字段——既清晰又高效。
直接多列 GROUP BY 是最标准写法
数据库原生支持对多个字段同时分组,SQL 引擎会自动把值完全相同的行归为一组。例如统计「城市 + 行业」组合的公司数量:
- SELECT city, industry, COUNT(*) AS cnt FROM companies GROUP BY city, industry;
- 注意:SELECT 中所有非聚合字段(如 city、industry)必须全部出现在 GROUP BY 子句中,否则报错(严格模式下)。
- 顺序无关紧要,
GROUP BY industry, city效果一致,但建议和 SELECT 顺序保持一致,便于阅读。
需要过滤组合频次时,用 HAVING 而不是 WHERE
WHERE 在分组前过滤单行数据;HAVING 在分组后过滤“组合组”。比如只看出现 ≥5 次的城市-行业组合:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~