Oracle SQL查询:如何使用count

前端之家收集整理的这篇文章主要介绍了Oracle SQL查询:如何使用count前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下格式的数据

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

猜你在找的Oracle相关文章