重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

すみません、SQLを教えてください。

ID, 名前の2つのフィールドを持つテーブルがあります。
中身は以下のように入っています。

1, AAA
2. AAA
2, BBB
3, CCC
3, AAA
4, DDD
5, EEE,
5, DDD

これを、名前のダブリをスキップしながら、
IDの大きな順番に名前を取り出したいのです。

結果は、以下のようになればいいです。
DDD
EEE
AAA
CCC
BBB

どのようなSQLを組んだら実現できますか?
よろしくお願いいたします。

A 回答 (2件)

要件がおかしくない?


例示データならDよりEが先と思います。

あと、テーブル名、列名も決めておいてね。TABLE、IDとNAMEとします。
Select NAME From (
Select NAME,Max(ID) as MAX_ID From TABLE Group by NAME
)
Order by MAX_ID DESC
;

この回答への補足

すみません、その後
Select name, Max(ID) as MAX_ID From TTEST Group by NAME Order by MAX_ID DESC;

↑これを実行したら、うまくいきました。

大変助かりました。
ありがとうございました!

補足日時:2014/02/22 11:38
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
教えて頂いたとおり実行してみたのですが、syntax errorが発生してしまいました。

ちなみ、以下のSQLを実行してみました。

***************************************************************
Select NAME From (
Select NAME,Max(ID) as MAX_ID From TTEST Group by NAME
)
Order by MAX_ID DESC;
***************************************************************

そうしましたら、次のエラーが発生しました。

***************************************************************
ERROR: syntax error at or near "From" at character 50
LINE 2: Select NAME,Max(ID) as MAX_ID From TTEST Group by NAME
^
***************************************************************

申し訳ありませんが、解決方法を再度教えていただけないでしょうか?
よろしくお願いいたします。

お礼日時:2014/02/22 11:33

IDが5同士なら名前順ということみたいなので



0rder by MAX_ID DESC,NAME
に訂正
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す