使用SQL从一组用户中找到最常见的varchar

问题描述 投票:0回答:1

我有成千上万的用户,我正在尝试找到他们最常见的细分。数据如下所示:

User               Segment
User 1               Good
User 1               Good
User 1               Poor
user 2               Medium
user 2               Medium
User 3               Poor

在这种情况下,SQL代码将返回:

对用户1有利

用户2的媒体

用户3较差

我尝试使用Max函数,但这只会按字母顺序返回字符串,而不是与每个用户相关的最常见的字符串。实际上,该细分受众群经常会在用户之间变化。因此,它很可能会更改8到10次,但正在寻找最能代表它们的一次。

谢谢!

sql postgresql frequency topmost
1个回答
0
投票

您可以使用row_number()count()分析函数来执行此操作:

select user,segment from (select user, segment,cnt,row_number() over(partition by user,segment order by cnt desc) as rn from (select
user,segment,count(segment) over(partition by user,segment) as cnt 
from table))
where rn=1;
© www.soinside.com 2019 - 2024. All rights reserved.