postgresにはdistinct on という構文があるそうです。知らなかったです。 djangoのドキュメントで知りました。 postgres distinct on でググるとこちらのエントリが一番上にきます。 PostgreSQL の DISTINCT ON http://www.odin.hyork.net/write/write0228.html 要するに、重複しているかどうかを判断するカラムを指定しつつ、それ以外のカラムも取得する、というわけですね。 distinctなんで重複行は省かれるんですが、distinct onに指定したカラム以外については、一番最初に見つかった行の値を返します。 なのでorder byも同時に指定します。 さてdjangoでは1.4からquerysetのdistinctメソッドにフィールド名を渡すことによってdistinct on が使えるように