Sql server 计算差异表sql中的所有最大数值

Sql server 计算差异表sql中的所有最大数值,sql-server,join,count,sql-order-by,ssms,Sql Server,Join,Count,Sql Order By,Ssms,我试图解决这个问题时出错了。首先我需要计算2个表的所有值,然后我需要在where条件下获得所有最大值 我的代码: Select * FROM ( select Operator.OperatoriausPavadinimas, ( select count(*) from Plan where Plan.operatoriausID= Operator.operatoriausID ) as NumberOFPlans from Operator

我试图解决这个问题时出错了。首先我需要计算2个表的所有值,然后我需要在where条件下获得所有最大值

我的代码:

Select *
FROM (
  select Operator.OperatoriausPavadinimas,
  (
    select count(*) 
    from Plan 
    where Plan.operatoriausID= Operator.operatoriausID
  ) as NumberOFPlans 
  from Operator 
)a
where a.NumberOFPlans=  Max(a.NumberOFPlans)
我得到这个错误

Msg 147,15级,状态1,第19行 聚合不能出现在WHERE子句中,除非它位于HAVING子句或select列表中包含的子查询中,并且被聚合的列是外部引用

我不知道怎么解决这个问题

我需要这个

更新1

计划表包含一组值和
运算符表包含一组值。

您正在查找。。。联接两个表并返回具有最大计数的记录的聚合查询

我怀疑这句话可能是这样的:

SELECT TOP(1) o.OperatoriausPavadinimas, COUNT(*)
FROM Operatorius o
INNER JOIN Planas p ON p.operatoriausID = o.operatoriausID
GROUP BY o.OperatoriausPavadinimas
ORDER BY COUNT(*) DESC
如果要允许系结,可以将TOP1与系结一起使用。

可以将top与系结一起使用。您的问题有点难以理解,但我认为您需要:

select top (1) with ties o.OperatoriausPavadinimas, count(*)
from plan p join
     operator o
     on p.operatoriausID = o.operatoriausID
group by o.OperatoriausPavadinimas
order by count(*) desc;

事实上,你的问题有点不清楚。请编辑您的问题,以表格文本形式显示样本数据和预期输出,好吗?我想您必须进行连接才能获得所需的结果。但如果在数据库中,则将更多地使用最大值?我要和max好好谈谈value@mausasu1234:此查询将仅返回一条记录,其中运算符auspavadinimase在表Operatorius和Planas中的记录量最大。你应该在你的数据库上尝试一下,看看它会返回什么。我知道,但在我的数据库中有两条记录的最大值相同。要允许在结果集中有联系,你可以使用TOP1和TIES@mausasu1234:我确实怀疑此查询符合您的预期。请花时间根据您的数据测试查询。如果您没有得到预期的结果,请编辑您的问题,添加样本数据和预期结果,以使您试图实现的目标更加清晰。之后,我们将乐于帮助更多@GMB。你的领带有领带吗?