SQL 服务器中的查找模式
Finding mode in SQL Server
我有以下查询,其中 returns 我的模式是数据集中重复次数最多的值
select top 1 TargetPriceRec as mode
from PricingRecurring
Group By TargetPriceRec order by Count(*) desc
我从中得到了最重复的值,但问题是,如果没有重复值,我仍然得到数据集中的最高值。如果数据集中没有重复值,并且如果有多个重复值,我如何得到一个空值,因为没有单一模式,我仍然得到一个空值。
您可以使用以下方式获取所有模式:
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
我有以下查询,其中 returns 我的模式是数据集中重复次数最多的值
select top 1 TargetPriceRec as mode
from PricingRecurring
Group By TargetPriceRec order by Count(*) desc
我从中得到了最重复的值,但问题是,如果没有重复值,我仍然得到数据集中的最高值。如果数据集中没有重复值,并且如果有多个重复值,我如何得到一个空值,因为没有单一模式,我仍然得到一个空值。
您可以使用以下方式获取所有模式:
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