小编Ali*_*i J的帖子

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

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

数据如下所示:

UserID  Service
---------------
1       Map1
1       Map2
1       Map1
2       Map1
2       Map2
3       Map4
3       Map2
3       Map2
3       Map2
...     ...
Run Code Online (Sandbox Code Playgroud)

所需的输出类似于以下内容:

UserID  Service  TimesAccessed
------------------------------
1       Map1     2
1       Map2     1
2       Map1     1     
2       Map2     1
3       Map3     3
3       Map4     1
...     ...      ...
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.

sql database oracle

2
推荐指数
1
解决办法
1651
查看次数

更优雅的SQL?

下面的查询功能完备,查询单个表以查找通过序列userid号列添加的最后50个用户名.

到目前为止的逻辑是:找出最高的用户ID; 从中减去50; 将用户名拉回到更大的位置.

但是,它看起来并不优雅,并使用两个子查询来实现它的目标:

SELECT username  
FROM table  
WHERE userid IN  
  (SELECT userid  
   FROM table  
   WHERE userid >  
    (SELECT MAX(userid) -50  
     FROM table))
Run Code Online (Sandbox Code Playgroud)

有没有办法减少嵌套?更高效?更优雅?任何帮助将不胜感激,因为这不是最好的方式!

干杯和非常感谢
阿里

sql database oracle

2
推荐指数
1
解决办法
619
查看次数

标签 统计

database ×2

oracle ×2

sql ×2