列出组合及其在SQL中重复的次数

列出组合及其在SQL中重复的次数,sql,sql-server,Sql,Sql Server,我甚至不知道如何确切地描述这个问题,通常我有一个小表(在SQLServer2019中)有两列,没有很多数据,它看起来像这样 MechanicID CarID ---------------------- 1 2 1 3 2 1 2 3 4 1 4 2 4

我甚至不知道如何确切地描述这个问题,通常我有一个小表(在SQLServer2019中)有两列,没有很多数据,它看起来像这样

MechanicID       CarID
----------------------
1                   2
1                   3
2                   1
2                   3
4                   1
4                   2
4                   3
现在的想法是(最好使用SELECT,如果SELECT不可能,可能使用存储过程?)检查某个组合的汽车发生了多少次

基本上,它列出了一起维修的汽车组合以及维修这些组合的机械师的数量。只有那些存在的组合才会出现

结果应该是:

Car combination        Number of occurrences
---------------------------------------------
1&2                    1
1&3                    2
2&3                    2
机修工1维修了2号和3号车,机修工4也维修了这个组合,所以出现的次数是2


非常感谢您的帮助

使用自连接和聚合:

select t1.carid, t2.carid, count(*)
from t t1 join
     t t2
     on t1.MechanicID = t2.MechanicID and
        t1.carid < t2.carid
group by t1.carid, t2.carid
选择t1.carid、t2.carid、count(*)
从t1连接
t2
在t1.MechanicID=t2.MechanicID和
t1.carid
您使用的是什么数据库?MS SQL 2019是将数据串联到单个列中的数据库(正如您使用
汽车组合
列所做的那样)在SQL中不容易实现,因为这是一个数据显示问题。你一定要以这种格式返回数据吗?或者你能返回标准化结果吗?很遗憾,标准化结果不是选项。太好了!