SQL:计算Oracle中多列的出现次数

Posted

技术标签:

【中文标题】SQL:计算Oracle中多列的出现次数【英文标题】:SQL: Counting number of occurances over multiple columns in Oracle 【发布时间】:2009-04-08 11:01:54 【问题描述】:

无法理解将返回用户访问特定服务的次数的 SQL。认为它可能需要嵌套计数和选择,但无法理解它。

数据如下:

UserID  Service
---------------
1       Map1
1       Map2
1       Map1
2       Map1
2       Map2
3       Map4
3       Map2
3       Map2
3       Map2
...     ...

所需的输出类型大致如下:

UserID  Service  TimesAccessed
------------------------------
1       Map1     2
1       Map2     1
2       Map1     1     
2       Map2     1
3       Map3     3
3       Map4     1
...     ...      ...

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我认为这样做:

SELECT  UserID, Service, COUNT(UserID) TimesAccessed
FROM    Table
GROUP BY UserID, Service

【讨论】:

【参考方案2】:

这样的?

select  
    userid, service, count(userid)  
 from   
    table  
 group by  
    userid, service  

【讨论】:

没问题,很高兴我们能提供帮助。 对不起,你还以为你真的比我快了一秒! 没关系,这一次,不要再做了。不过,您的答案格式更好,更完整。

以上是关于SQL:计算Oracle中多列的出现次数的主要内容,如果未能解决你的问题,请参考以下文章

计算不同单词在列中出现的次数 Oracle 12c SQL

Oracle SQL:计算给定条目的属性出现的频率并选择出现次数最多的属性

在 Oracle 中计算并添加多列的总计行

如何计算 Oracle varchar 值中字符的出现次数?

Oracle:一个查询,它计算字符串中所有非字母数字字符的出现次数

SQL:计算输出列上出现的次数并根据出现次数计算一些百分比