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

MySQL如何创建统计同A、B、C列值对应变体总数的视图

实现方案

MySQL 10.5.9 版本支持窗口函数,直接用分区统计的方式实现即可,不需要关联子查询,执行效率更高。
假设你原表的名称为origin_table,替换为实际表名后,用以下语句创建视图:

CREATE VIEW your_view_name AS
SELECT 
    A,
    B,
    C,
    D,
    COUNT(*) OVER (PARTITION BY A, B, C) AS variants
FROM origin_table;

逻辑说明

  • 用PARTITION BY A,B,C将所有A、B、C三个字段取值完全相同的行划到同一个分区
  • COUNT(*) OVER ()统计每个分区内的总行数,这个值会赋值给同分区内的每一行的variants字段,完全符合忽略D字段差异、统计同ABC组行数的要求

如果有兼容更低版本MySQL的特殊需求,也可以用子查询关联的方式实现:

CREATE VIEW your_view_name AS
SELECT 
    t1.A,
    t1.B,
    t1.C,
    t1.D,
    t2.variants
FROM origin_table t1
LEFT JOIN (
    SELECT A,B,C,COUNT(*) AS variants 
    FROM origin_table 
    GROUP BY A,B,C
) t2 ON t1.A = t2.A AND t1.B = t2.B AND t1.C = t2.C;

验证方法

创建完成后可以执行以下语句查看结果是否符合预期:

SELECT * FROM your_view_name LIMIT 10;

可自行选取几组ABC取值相同的行,检查对应的variants值是否一致且等于该组的实际行数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:39:00