- ベストアンサー
SQL文を教えてください。
すみません、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を組んだら実現できますか? よろしくお願いいたします。
- みんなの回答 (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 ;
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.2
IDが5同士なら名前順ということみたいなので 0rder by MAX_ID DESC,NAME に訂正
お礼
ご回答ありがとうございます。 教えて頂いたとおり実行してみたのですが、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 ^ *************************************************************** 申し訳ありませんが、解決方法を再度教えていただけないでしょうか? よろしくお願いいたします。
補足
すみません、その後 Select name, Max(ID) as MAX_ID From TTEST Group by NAME Order by MAX_ID DESC; ↑これを実行したら、うまくいきました。 大変助かりました。 ありがとうございました!