设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: google 娱乐 服务 百度
当前位置: 首页 > 站长百科 > 正文

Oracle SQL查询:如何使用count

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

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读