注文

2016-05-04 6 views
1

マイデータがあるラウンド:注文

(右側のユニークなID列)

1. aaa,   1 
2. aaa,   2 
3. aaa,   3 
4. bbb,   4 
5. bbb,   5 
6. bbb,   6 
7. ccc,   7 
8. ccc,   8 
9. ccc,   9 
10. ddd,  10 
11. ddd,  11 
12. ddd,  12 

私はごまかすことができた結果が

1. aaa 
2. bbb 
3. ccc 
4. ddd 
5. aaa 
6. bbb 
7. ccc 
8. ddd 
9. aaa 
10. bbb 
11. ccc 
12. ddd 

のようになりたいです使用する

Select distinct letters from table 
UNION ALL 
Select distinct letter from table 

*各d istinct xxxの価値

等。正しい結果を得るためには、しかし、それは私に多くの異なる値があることを知っている。

私は本当にここで何かが欠けていると思います!

+0

ご使用のデータベースに質問にタグを付けてください。また、余分な行はどこから来ますか? –

+0

は4行を削除しました。私はコピー/貼り付けを奪われました。 – Rich

答えて

2

ほとんどのデータベースは、ANSI標準row_number()機能をサポートしています。これにより、あなたが望むことができます。

select t.* 
from t 
order by row_number() over (partition by name order by id), 
     id; 

これはインターレースされた順序付けを行います。追加の4行がどこから来ているのか分かりません。質問のタイトルは、注文があなたの質問の基礎であることを示唆しています。

+0

ありがとうございました。それは私がする必要があったものではなく、RANKとPARTITION BYにさまよっていました! – Rich