DISTINCT+ORDER BY


 こういうことはできないということをようやく理解しました。DISTINCTの代わりにGROUP BYを使えば何とかなる様子。

SELECT DISTINCT c1,c2 FROM table ORDER BY c3;

 テーブルにもよりそうですが、たぶんエラー。

SELECT c1,c2 FROM table GROUP BY c1,c2 ORDER BY max(c3);

 これなら上の期待する結果が返る。max以外にも集計関数であれば問題なさそう。ここを普通にc3と書いてしまうと、「GROUP BYにc3がありません」というエラーになる。

 うーん、SQLについては分からないことが多すぎて何とも。テクニカルエンジニアのDBあたりを勉強すれば詳しくなれるだろうか。まだまだ使いこなすには時間かかりそう。

参考:http://okwave.jp/qa2828848.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です