我无法根据最常见的价值进行分组。 我拥有的数据是:
ID Name
327 TypeA
327 TypeA
327 TypeA
327 TypeB
327 TypeB
327 TypeB
327 TypeB
在这种情况下,我想要选择ID和名称" TypeB"因为它是该ID的最常见值。所以输出看起来像:
ID Name
327 TypeB
希望有人可以帮忙解决这个问题,谢谢。
答案 0 :(得分:5)
这在统计数据中称为mode
。这是一种方法:
select id, name
from (select id, name, count(*) as cnt,
row_number() over (partition by id order by count(*) desc) as seqnum
from t
group by id, name
) t
where seqnum = 1;
答案 1 :(得分:1)
以下是如何在子查询中使用group by
select
ID,
Name
from
(
Select
ID,
Name,
Count(distinct(Name)) as [Count]
from tablename
group by
ID,
Name
having Count(distinct(Name)) = MAX(Count(distinct(Name)))
)