2017-05-29 104 views
0

嗨,我有一個表下面;重新索引重複行

ID length 
1 1050 
1 1000 
1 900 
1 600 
2 545 
2 434 
3 45 
3 7 
4 5 

我需要一個SQL代碼,以使下面的表

ID IDK length 
1 1 1050 
1 2 1000 
1 3 900 
1 4 600 
2 1 545 
2 2 434 
3 1 45 
3 2 7 
4 1 5 

IDK是新的列,以根據長度的升序重新索引相同的ID。 非常感謝你

回答

2

這是MS Access的痛苦。下面是一個使用相關子查詢的一種方式:

select t.*, 
     (select count(*) 
     from foo as t2 
     where t2.id = t.id and t2.length >= t.length 
     ) as idk 
from foo as t; 
+0

謝謝@Gordon Linoff我更改表名稱爲Foo 選擇富*, (SELECT COUNT(*) 從富爲t2 其中t2.id = t1.id和t2.length> = t1.length )作爲idk 來自foo; 但所有的IDK結果是0 – Sero

+0

選擇FOO。*, (SELECT COUNT(*) 從富爲t2 其中t2.ID = foo.ID和t2.length> = foo.length )作爲IDK 從FOO;代碼正在工作。但我怎樣才能在同一個ID內按照長度降序排列表格 – Sero