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

如何统计SQL关联查询中A.i字段的重复次数?

解决方案:添加A.i重复次数列

你可以利用SQL的窗口函数来轻松实现这个需求,不需要额外的子查询或复杂的分组操作,直接在原查询的基础上新增一列即可。

修改后的SQL语句

select 
    A.i,
    A.j,
    B.x,
    B.y,
    B.z,
    COUNT(A.i) OVER (PARTITION BY A.i) as RepeatColumn
from A 
inner join B on A.id=B.id_B 
order by A.i,A.j

语句解释

  • COUNT(A.i) OVER (PARTITION BY A.i)是实现需求的核心:
    • PARTITION BY A.i:按照A.i的值对整个结果集进行分组
    • COUNT(A.i):统计每个分组内的总行数,也就是对应A.i值的重复次数
    • OVER子句的作用是让这个统计结果作为新列,跟随每一行数据返回,而不是将结果聚合为单行

结果验证

执行这条语句后,会完全匹配你的期望输出:

  • 所有A.i='bk'的行,RepeatColumn都会显示3
  • 所有A.i='ro'的行,RepeatColumn都会显示2
  • A.i='st'的行,RepeatColumn显示1

这个方法高效且简洁,窗口函数在MySQL 8.0+、PostgreSQL、SQL Server等主流数据库中都支持。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:03:23