質問: :user_id ORDER BY created_at DESC LIMIT 5 ``` `ORDER BY` のためにcreated_at列を取り除くことはできません。私は何かが欠けているに違いないが、それが何であるか完全にはわからない。
回答: 列を省略することはできません。これはしばらく前にSQL標準に追加されました。 > > SELECT DISTINCTの場合、ORDER BY式は選択リストに表示する必要があります。 > > > ここ(Tom Laneのメッセージ)から引用 > > 実際にはその定義上の理由があります。検討する > > > > SELECT DISTINCT x FROMタブORDER BY y; > > > > 表内の特定のx値には、 値。出力でそのx値をソートするのにどちらを使いますか? > > > > SQL92に戻って、彼らはこの問題を避けるために、ORDER BY > > エントリは出力列を参照する必要がありました。 SQL99にはちょっとした言葉遣いがあります > 私の制限と同じ場所に出てくると思います。 > > > たとえば、Oracleではこのルール(10gまたは11g)は適用されません。