2017-05-29 8 views
0

こんにちは私は以下の表を持っています。重複行の再索引付け

ID length 
1 1050 
1 1000 
1 900 
1 600 
2 545 
2 434 
3 45 
3 7 
4 5 
Iは以下の表を作成する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

は私がfoo 選択fooのように、テーブル名を変更し、あなたに@Gordon Linoffありがとう*、 (SELECT COUNT(*) FOOからt2の どこt2.idとして。 = t1.idおよびt2.length> = t1.length )としてidk fooから; しかし、すべてのIDK結果は0 – Sero

+0

選択FOOである。*、 (SELECT COUNT(*) FOOからT2 t2.ID = foo.IDとt2.length> = foo.length など)からIDK としてfoo; コードが機能しています。しかし、同じID内の長さの降順でテーブルをソートするにはどうすればよいですか – Sero

関連する問題