Sql 如何为select语句返回的唯一ID范围返回最频繁的值

Sql 如何为select语句返回的唯一ID范围返回最频繁的值,sql,tsql,select,merge,count,Sql,Tsql,Select,Merge,Count,我有一系列select语句,它们根据GROUPBY查询中的几个where子句将唯一ID的列表返回到输出表中 我还希望能够从输出表中ID所在的表中选择最频繁的TeamName值 i、 e.输出表显示 DocTypeID | No Source | No Date | No RefNo | TeamName --------------- |---------------- |------------- |------------------|

我有一系列select语句,它们根据GROUPBY查询中的几个where子句将唯一ID的列表返回到输出表中

我还希望能够从输出表中ID所在的表中选择最频繁的TeamName值

i、 e.输出表显示

DocTypeID       |     No Source   |  No Date     |     No RefNo     |    TeamName
--------------- |---------------- |------------- |------------------| -------------
926c4185        |        2        |   1          |     69           |       NULL
bff5be99        |        3        |   3          |     5368         |       NULL    
a04d4rf         |        NULL     |   NULL       |     26           |       NULL
TeamName值与DocTypeID一起存在于TableA中,但对于同一DocTypeID,可能存在不同的TeamName值,因此我需要提取不为NULL的最频繁值

我可以用这样的方法确定最频繁的值-

select top 1 [TeamName] , count([TeamName]) 'count' 
from Documents             
where DocTypeID = '926c4185' 
group by [TeamName] 
order by count desc  
但是我在尝试用TeamName值更新输出表时遇到了困难。我尝试过合并表,但没有成功,但不确定这是否是正确的方法


抱歉说得含糊不清,如果你能指出正确的方向,我将不胜感激。如有必要,可以提供更多详细信息

如果我理解正确,您可以使用相关子查询或应用:

注意:如果多个团队出现的频率相同,则任意选择一个

select ot.*, d.TeamName
from outputtable ot outer apply
     (select top 1 d.TeamName, count(*) as cnt 
      from Documents d           
      where d.DocTypeID = ot.DocTypeId
      group by d.TeamName
      order by cnt desc
     ) d;