繁体   English   中英

从多个表导出数据并在Oracle中联接

[英]Deriving Data from Multiple Tables & Joining in Oracle

用户将使用以下两个表记录数据:

用户:

UserID UserName UserType
    1    Tom     5
    2    Mike    6
    3    Joe     6

记录:

 UserID Recording
    1    10
    1    15

我想使用一个查询来查找名称,以及每个UserType高于UserType平均值的用户的录音计数。 如果用户从未进行过录制,则必须为0(不为null或丢失)。

我的方法是首先选择高于平均水平的用户,其次选择每个用户的录音数量,然后选择UserID匹配的两个用户。 有没有更直接的方法?

SELECT usr.UserID
      ,COUNT(rec.Recording) Count
  FROM USers usr
      ,Recordings rec
      ,(SELECT AVG(UserType) average
          FROM USers usr1) avg1
 WHERE usr.Userid = rec.userid(+)
   AND avg1.average < usr.UserType
 GROUP BY usr.UserID

请检查是否可行。

http://sqlfiddle.com/#!4/a03d2/5/0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM