PARTITION 2000實現方式

2022-04-04 04:06:41 字數 2062 閱讀 2651

--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...