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

MySQL能否将app字段拆分为两列并按grupo_id分组统计?

可行,用条件聚合即可实现

你可以通过条件聚合(结合CASE表达式与聚合函数)来实现需求,直接按grupo_id分组,同时统计每个分组内app=1和app=0的数量。

实现SQL

SELECT
  grupo_id,
  COUNT(CASE WHEN app = 1 THEN 1 END) AS `app-on`,
  COUNT(CASE WHEN app = 0 THEN 1 END) AS `app-off`
FROM devices
GROUP BY grupo_id;

也可以用SUM函数实现,效果完全一致:

SELECT
  grupo_id,
  SUM(CASE WHEN app = 1 THEN 1 ELSE 0 END) AS `app-on`,
  SUM(CASE WHEN app = 0 THEN 1 ELSE 0 END) AS `app-off`
FROM devices
GROUP BY grupo_id;

原理说明

  • CASE WHEN app = 1 THEN 1 END会在app等于1时返回1,否则返回NULL;COUNT函数会忽略NULL值,因此只会统计符合条件的行数。
  • 按grupo_id分组后,每个分组会分别计算app=1和app=0的总数量,直接得到你需要的拆分结果。

示例对比

假设原查询的结果是:

totalappgrupo_id
51101
30101
21102
70102

新查询的结果会变成:

grupo_idapp-onapp-off
10153
10227

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:18:10