こういうことはできないということをようやく理解しました。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あたりを勉強すれば詳しくなれるだろうか。まだまだ使いこなすには時間かかりそう。