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

MySQL中按数组条件分组统计客户local数量的实现

统计符合条件的客户local数量

数据表结构及数据

groupLocal表

idnameGroupgroup
1group A[1,2]
2group B[2,3]

customer表

idnameCustomerlocal
1Jerry1
2Tom2
3Nan2
4Bie3

需求

统计满足**customer.local存在于groupLocal.group数组中**的客户local数量,期望结果如下:

期望结果表

idnameGroupcount(customer.local)
1group A3
2group B3

解决方案(以MySQL为例)

利用JSON_CONTAINS函数判断customer.local是否存在于groupLocal.group的JSON数组中,结合分组统计得到目标结果:

SELECT 
    gl.id,
    gl.nameGroup,
    COUNT(c.local) AS `count(customer.local)`
FROM groupLocal gl
LEFT JOIN customer c ON JSON_CONTAINS(gl.group, CAST(c.local AS JSON))
GROUP BY gl.id, gl.nameGroup;

说明

  • JSON_CONTAINS(gl.group, CAST(c.local AS JSON)):将customer.local转为JSON类型后,检查其是否包含在groupLocal.group的数组内
  • LEFT JOIN确保每个分组都会被统计,即便没有匹配的客户
  • GROUP BY gl.id, gl.nameGroup按分组的id和名称分组,统计每组匹配的客户数量

内容的提问来源于stack exchange,提问作者Đào Văn Mong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:52:16