--drop table test
create
table test
(id int,
groupname varchar(20),
name varchar(20),
gage int
) insert
into test
select
1,'中國','劉德華',34
union
select
2,'越南','周杰倫',3
union
select
3,'美國','周星馳',34
union
select
4,'南韓','劉瑪麗',43
union
select
56,'日本','劉結婚',45
union
select
23,'英國','劉大典',32
union
select
45,'美國','劉親愛',21
union
select
11,'日本','劉耳洞',12
union
select
23,'中國','劉方法',3
union
select
34,'日本','劉上網',4
union
select
35,'中國','周打發',56
union
select
54,'南韓','周風格',65
union
select
2,'中國','周傑克',43
union
select
23,'美國','周小弟',23
union
select
45,'中國','周時尚',12
union
select
12,'美國','週為',45
union
select
7,'南韓','李周',56
union
select
8,'中國','李發',44
union
select
9,'越南','李網',23
union
select
22,'越南','李上',37
union
select
11,'中國','李二',28
union
select
1,'中國','李但',45
--2005
select row_number () over (partition by groupname order
by id ) iid,* from test t
--2000
select (select
count(1) from test t2 where t2.id<=t1.id and t2.groupname=t1.groupname ), * from test t1
order
by groupname
iid id groupname name gage
1 4 南韓 劉瑪麗 43
2 7 南韓 李周 56
3 54 南韓 周風格 65
4 45 美國 劉親愛 21
1 3 美國 周星馳 34
2 12 美國 週為 45
3 23 美國 周小弟 23
2 34 日本 劉上網 4
1 11 日本 劉耳洞 12
3 56 日本 劉結婚 45
1 23 英國 劉大典 32
3 22 越南 李上 37
2 9 越南 李網 23
1 2 越南 周杰倫 3
3 2 中國 周傑克 43
2 1 中國 李但 45
2 1 中國 劉德華 34
4 8 中國 李發 44
5 11 中國 李二 28
6 23 中國 劉方法 3
7 35 中國 周打發 56
8 45 中國 周時尚 12
PARTITION 2000實現方式
drop table test create table test id int,groupname varchar 20 name varchar 20 gage int insert into test select 1,中國 劉德華 34union select 2,越南 周杰倫 3union...
Partition函式實現的快速排序演算法
被傳值傳引用的問題還有一些雜事困擾了一下午,現在終於可以靜下心來寫部落格了。這個partition函式是我在 劍指offer 那本書上看到的,其實對應於快排是乙個單項掃瞄。這個函式在很多演算法題上都有應用,主要原理就是選定乙個參考值,然後將資料分成兩部分,左邊都是比它小的,右邊都是比它大的。然後把中...
快速排序 一次遍歷partition的實現
一種partition的實現如下 1 private int partition int array,int left,int right 14 1516 int tem array i 1 17 array i 1 array right 18 array right tem 1920 retur...