查询Oracle数据库中完成交易金额最大的前两个客户的SQL语句。

21 浏览
0 Comments

查询Oracle数据库中完成交易金额最大的前两个客户的SQL语句。

这个问题已经有了答案

如何在Oracle中做到TOP 1?[重复]

我想从下表中获取完成最大交易量的TOP 2客户。我正在使用Oracle数据库。

我的交易表:

 tranID       PROD_ID       QTY      PRICE        CID 
      1       100            5         10000      1000  
      2       103            16        5000       1001  
      3       102            8         5000       1003
      4       200            10        9000       1002  
      5       204            8        9000         1002  
      6       207            4         8000        1002  

客户

CID CNAME
1001  X
1002  Y
1003  Z

admin 更改状态以发布 2023年5月23日
0
0 Comments

你可以使用分组求和和连接,然后使用last筛选rownum

  select a.CID, b.CNAME, sum(a.QTY*a.PRICE) amount
  from transactions a
  INNER JOIN CUSTOMERS b on a.CID = b.CID
  WHERE ROWNUM < 3
  GROUP BY a.CID, b.CNAME
  ORDER BY amount 

0
0 Comments

如果使用Oracle 12c,你可以使用这个。

SELECT a.CID, b.CNAME, SUM (a.QTY * a.PRICE) amount
       FROM transactions a JOIN CUSTOMERS b ON a.CID = b.CID
   GROUP BY a.CID, b.CNAME
   ORDER BY amount DESC
FETCH FIRST 2 ROWS ONLY

0