我可能不会在标题中清楚地说明问题,这是我想要的:
我有一个这样的客户表:
CustNo Name State TaxID
10001 Tom CA 12354
10001 Tom CA 12355
10001 Tom CA 12356
10002 Jack IL 12354
10002 Jack IL 12355
10002 Jack IL 12356
10002 Jack IL 12357
10002 Jack IL 12358
10003 Eric TX 12356
10003 Eric TX 12359
现在我想在Oracle 10G DB中编写一个查询来获取这样的报告:
Index CustNo Name State TaxID
1 10001 Tom CA 12354
1 10001 Tom CA 12355
1 10001 Tom CA 12356
2 10002 Jack IL 12354
2 10002 Jack IL 12355
2 10002 Jack IL 12356
2 10002 Jack IL 12357
2 10002 Jack IL 12358
3 10003 Eric TX 12356
3 10003 Eric TX 12359
规则很明显:同一个CustNo应该具有相同的索引。
如果可能,请在此处尝试查询:http://sqlfiddle.com/#!4/7da53/1
答案 0 :(得分:1)
您正在寻找dense_rank()
:
select dense_rank() over (order by CustNo) as theindex,
t.*
from table t;
答案 1 :(得分:0)
select dense_Rank() over (order by custno) as cIndex
, CustNo
, name
, state
, taxid
from customer;