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

MySQL筛选ColA='CityC'并统计ColB重复次数且保留所有匹配行

MySQL 查询实现:筛选指定ColA并统计ColB重复次数

方法一:使用窗口函数(MySQL 8.0及以上版本)

这种方法代码简洁高效,适合新版本MySQL:

SELECT 
    ColA,
    ColB,
    ColC,
    COUNT(ColB) OVER (PARTITION BY ColB) AS TotalEach
FROM CityCityStuff
WHERE ColA = 'CityC';

说明:PARTITION BY ColB会将筛选出的ColA='CityC'的数据按ColB分组,每组内的每一行都会自动带上该组的总行数,也就是对应ColB的重复次数。

方法二:使用子查询关联(兼容所有MySQL版本)

如果你的MySQL版本不支持窗口函数,用这种关联查询的方式也能实现需求:

SELECT 
    t1.ColA,
    t1.ColB,
    t1.ColC,
    t2.TotalEach
FROM CityCityStuff t1
JOIN (
    SELECT ColB, COUNT(*) AS TotalEach
    FROM CityCityStuff
    WHERE ColA = 'CityC'
    GROUP BY ColB
) t2 ON t1.ColB = t2.ColB
WHERE t1.ColA = 'CityC';

说明:先通过子查询统计出ColA='CityC'范围内每个ColB的出现次数,再将这个统计结果和原表中符合条件的行通过ColB关联,最终得到包含原字段和统计列的结果。

内容的提问来源于stack exchange,提问作者Don E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:50:00