SQLの書き方がわからんですよ

データベース、というか、SQL文、というか、postgresql というか…手ごわいなぁ。まだまだよくわからんですよ。
重複を除いて並べ替えたい、というだけのことがよくわからんのだ。
メモ
$sql = "select * from (select distinct on (title) * from $blTABLE) as temp where read='t' order by $order_by offset $pos limit $view";
タイトルの重複を除いて、既読本並べ替える。というのだけど、postgresql の場合、distinct の効率はよくない、らしい。スピードが落ちるらしいんで調べて group by がいいらしいんだけど、どうやって使うのか。
おまけに、上のSQL文って副問い合わせとやら。一度select文でデータを全部なめた結果に対してさらにselectして並べ替え…selectを2回も発行してるんだけど、こういうのも効率が悪い、らしい。
うううむ。ルールとやらで別テーブルを作っておくか、とも思ったんだけど、それもまたどうだろ、と。
難しいです。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
【電子書籍発売中】