有表T1,以下字段
ID MSMC(门市名称)CP(产品) SL(销量)汇总后要得到下表,排序字段希望能自动生成,请问要如何做到ID MSMC(门市名称) PX(排序) CP(产品) SL(销量)
1 A店 1 苹果 100
2 A店 2 荔枝 90
3 A店 3 火龙果 80
6 B店 1 苹果 100
7 B店 2 荔枝 90
11 B店 3 火龙果 60
ID MSMC(门市名称)CP(产品) SL(销量)汇总后要得到下表,排序字段希望能自动生成,请问要如何做到ID MSMC(门市名称) PX(排序) CP(产品) SL(销量)
1 A店 1 苹果 100
2 A店 2 荔枝 90
3 A店 3 火龙果 80
6 B店 1 苹果 100
7 B店 2 荔枝 90
11 B店 3 火龙果 60
id,....
from tb
1 A店 1 苹果 100
2 A店 2 荔枝 90
3 A店 3 火龙果 80
6 B店 1 苹果 100
7 B店 2 荔枝 90
11 B店 3 火龙果 60
, MSMC
, PX = row_number() over(partition by MSMC order by SL desc)
, CP
, SL
from T1
order by MSMC
http://blog.csdn.net/claro/archive/2009/06/10/4257457.aspx在SQL2005中利用NTILE()排名函数对现有数据进行排序改造
http://blog.csdn.net/claro/archive/2009/06/10/4257392.aspx在SQL2005中利用RANK()函数与ROW_NUMBER()对现有数据进行排序改造
http://blog.csdn.net/claro/archive/2009/06/10/4257090.aspx
select id,msmc,(select count(1) from t1 where id=a.id and sl>=a.sl) as px,cp,sl
from t1 a
select id,msmc,(select count(1) from t1 where id=a.id and sl>=a.sl) as px,cp,sl
from t1 a order by id,px修改了一下。
from t1 a order by msmc,px