首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何编写t-sql语句来统计标志在特定分组中出现的次数?

如何编写t-sql语句来统计标志在特定分组中出现的次数?
EN

Stack Overflow用户
提问于 2018-08-02 02:25:55
回答 1查看 108关注 0票数 1

下面是我的数据的样例:

代码语言:javascript
复制
SELECT key1, key2, flag FROM mysegtable

它将产生如下输出:

代码语言:javascript
复制
key1  key2  flag
 1     1      A
 1     2      A
 1     3      B

 2     1      A
 2     2      A

 3     1      A
 3     1      B

其中key1可以被认为是标题表的关键字,而key1 + key2是段表的关键字。报头->段是一对多连接。对于每个数据段条目,都有一个相关的标志A或B。我需要统计所有唯一值A、B、……的出现次数。并输出每个key1中出现频率最高的那个。此外,当出现的次数相同时,我必须能够施加逻辑。

所以输出应该是:

代码语言:javascript
复制
key1  flag
 1      A
 2      A
 3      B

其中B在平局中被给予更高的优先级。

到目前为止,我的工作主要集中在从我的表中为每个标志事件进行选择,获取计数,然后对结果进行联合,这样我就可以对每个键和标志值对进行计数。从那里,我不确定如何提取每个键的最高出现次数标志,并强加我的优先情况。

感谢您能提供的任何帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-02 02:31:39

在统计中,最频繁的值被称为“模式”。以下是计算它的一种方法:

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

https://stackoverflow.com/questions/51639992

复制
相关文章

相似问题

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