首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL中获取两个最常用的数据?

从SQL中获取两个最常用的数据?
EN

Stack Overflow用户
提问于 2015-12-21 20:42:33
回答 1查看 38关注 0票数 0

我有一个叫做tbl_test的tbl,它不断地插入数据,每次大约有10^6条记录。

Acquire_Id (1到20之间的值),

Status_Msg( 'A‘到’Z‘之间的值),

Status_Code(1到26之间的值)

Status_Msg和Status_Code之间存在一对一的映射关系

现在,我希望获得每个收购方的两个最频繁的status_msg和Staus_Code计数(如果它们存在于表中

查询应节约成本

EN

回答 1

Stack Overflow用户

发布于 2015-12-21 20:45:52

大多数数据库都支持ANSI标准窗口函数。在聚合这些值之后,您可以使用row_number() (或rank()dense_rank(),取决于ties的返回方式)获得您想要的内容。

下面为每个获取者恰好返回两行(即使有平局)。

代码语言:javascript
复制
select t.*
from (select t.acquire_id, t.status_msg, t.status_code, count(*) as cnt,
             row_number() over (partition by t.acquire_id order by count(*) desc) as seqnum
      from tbl_test t
      group by t.acquire_id, t.status_msg, t.status_code
     ) t
where seqnum <= 2;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34395986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档