加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle SQL查询:如何使用count

发布时间:2021-02-06 01:29:48 所属栏目:站长百科 来源:网络整理
导读:我有以下格式的数据 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

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!