结果中的PLSQL动态行计数

时间:2018-08-23 19:08:18

标签: plsql

在PL SQL中,有一种方法可以按以下方式生成每个客户的订单计数...谢谢您的帮助。

Cust     Order#    Order Count
ABC1     011       1 
ABC1     052       2
ABC1     199       3
BBA1     150       1
BBA1     158       2

谢谢 加文

2 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,则可以进行一些分析。这是一个示例:

SQL> with test (cust, order#) as
  2    (select 'ABC1', '011' from dual union all
  3     select 'ABC1', '052' from dual union all
  4     select 'ABC1', '199' from dual union all
  5     select 'BBA1', '150' from dual union all
  6     select 'BBA1', '158' from dual
  7    )
  8  select cust, order#,
  9    row_number() over (partition by cust order by order#) order_count
 10  from test;

CUST ORD ORDER_COUNT
---- --- -----------
ABC1 011           1
ABC1 052           2
ABC1 199           3
BBA1 150           1
BBA1 158           2

SQL>

答案 1 :(得分:0)

听起来像您想要的GROUP BY,例如

select cust, SUM(order_count)
from MyTable
group by cust;

应该产生

cust   SUM
ABC1   6
BBA1   3