0

我有以下查询,它返回给我的模式是数据集中重复次数最多的值

select top 1 TargetPriceRec as mode 
from PricingRecurring  
Group By TargetPriceRec order by Count(*) desc

我从中得到了重复次数最多的值,但问题是如果没有重复值,我仍然会在数据集中获得最高值。如果数据集中没有重复值,并且如果有多个重复值,我如何获得一个空值,因为没有单一模式,我仍然得到一个空值。

4

1 回答 1

2

您可以使用以下方式获取所有模式:

select top (1) with ties TargetPriceRec as mode 
from PricingRecurring  
Group By TargetPriceRec
order by Count(*) desc;

为了您想要的结果:

select (case when count(*) = 1 then max(TargetPriceRec) end) as mode
from (select top (1) with ties TargetPriceRec 
      from PricingRecurring  
      Group By TargetPriceRec
      order by Count(*) desc
     ) m
于 2020-12-03T21:24:29.960 回答