设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 百科 > 正文

Oracle SQL查询:如何使用count

发布时间:2021-02-04 01:38 所属栏目:128 来源:网络整理
导读:我有以下格式的数据 userid amount term APR1 10 5 11 10 4 22 20 6 12 20 4 32 20 3 1 我想按金额,期限,APR做订单,所以在输出中我想要最大金额和相应的期限,APR.如果金额相同,请选择一个最大期限,如果期限也相同则相同.但这三者的结合总是独一无二的. 输出

我有以下格式的数据

userid  amount  term  APR
1        10       5    1
1        10       4    2
2        20       6    1
2        20       4    3
2        20       3    1

我想按金额,期限,APR做订单,所以在输出中我想要最大金额和相应的期限,APR.如果金额相同,请选择一个最大期限,如果期限也相同则相同.但这三者的结合总是独一无二的.

输出列:

userid,amount,term,apr,numberOfRowsForEachUser
  1       10       5   1      2
  2       20       6   1      3

问题:我能够获得前四列,但不确定如何获得“总计没有优惠”或“每个用户的总行数”.

我的查询看起来像这样.

select 
  userid,apr
  from 
( select userid,apr
   RANK() OVER (PARTITION BY userid ORDER BY amount,apr) amount_rank,from 
   tableXYZ
) 
where amount_rank = 1

解决方法

只需添加COUNT(*)分析函数即可

select 
  userid,cnt
  from 
( select userid,COUNT(*) OVER (PARTITION BY userid) cnt
from 
   tableXYZ
) 
where amount_rank = 1

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读