You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何将同表的多组SELECT分组查询结果合并为单表?

合并多组统计查询的解决方案

你可以通过条件聚合实现一次查询完成所有统计,结果直接整合在同一张表中,无需多次查询后合并:

SELECT
  orgname,
  COUNT(username) AS total_users,
  SUM(CASE WHEN two_fa_enabled = 1 THEN 1 ELSE 0 END) AS users_with_2FA,
  SUM(CASE WHEN two_fa_required_date IS NOT NULL AND two_fa_enabled IS NULL THEN 1 ELSE 0 END) AS users_pending_2FA
FROM `user`
GROUP BY orgname;

核心逻辑说明:

  • COUNT(username):直接统计每个组织的总用户数量
  • SUM(CASE ...):通过条件判断实现分组计数,满足条件的行记为1,否则记为0,求和后得到对应分类的用户数
  • 该方案仅扫描一次user表,相比多次查询再关联的方式性能更高效

如果你的数据库支持FILTER子句(例如PostgreSQL),可以使用更简洁的写法:

SELECT
  orgname,
  COUNT(username) AS total_users,
  COUNT(username) FILTER (WHERE two_fa_enabled = 1) AS users_with_2FA,
  COUNT(username) FILTER (WHERE two_fa_required_date IS NOT NULL AND two_fa_enabled IS NULL) AS users_pending_2FA
FROM `user`
GROUP BY orgname;

内容的提问来源于stack exchange,提问作者Antoine G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 08:24:13