問題タブ [distinct-on]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
117 参照

postgresql - テーブルとビューに対する GROUP BY と DISTINCT ON の動作の違い

テーブルDesignと、そのテーブルの というビューがありますArchivedDesign。ビューは次のように宣言されます。

次に、最新の変更、サムネイルなどの短い要約を取得する大きなクエリがあります。クエリ全体は重要ではありませんが、2 つのほぼ同一のサブクエリが含まれています。1 つはメイン テーブル用で、もう 1 つはビュー用です。

SQL フィドルへのリンク: http://sqlfiddle.com/#!17/d1d0f/1

クエリはテーブルに対して有効ですが、ビューに対してはエラーで失敗しますcolumn x."Modified" must appear in the GROUP BY clause or be used in an aggregate function。これら 2 つのクエリの動作に違いがある理由がわかりません。テーブル クエリと同じようにビュー クエリを修正するにはどうすればよいですか?

私の最終的な目標は、すべてのテーブル サブクエリをビュー サブクエリに置き換えて、ドラフト、アクティブ、およびアーカイブされたデザインを簡単に分離できるようにすることです。

0 投票する
1 に答える
722 参照

postgresql - サブクエリで個別に使用すると PostgreSQL のパフォーマンスが低下するのはなぜですか?

usersフィールドidとを持つテーブルがありますemailidは主キーであり、emailインデックスも作成されます。

サブクエリで句を使用してテーブルをクエリすると、distinct on (email)パフォーマンスが大幅に低下します。

これをdistinct on (id)、コストが前のクエリの 1000 分の 1 未満のクエリと比較します。

どうしてこれなの?

私が抱えている本当の問題はdistinct on、一意ではないインデックス付きの列を実行するビューを作成しようとしていて、パフォーマンスが非常に悪いことです。

0 投票する
1 に答える
93 参照

ruby-on-rails - Rails ActiveRecordは、タイムスタンプ順に並べられた個別のレコードを選択します

次のデータの表では:

ここに画像の説明を入力

itemable_idこのテーブルから、列、itemable_type、およびに基づいて異なるレコードを選択しようとしていますuser_id。また、レコードを でソートしたいlast_viewed_at。Railsでは、レコードを区別することができましたが、私が試みるすべての方法は、常にレコードIDを取得するのでは1なく. 基本的に、私が最終的にしようとしているレコード セットは、ID 4、3、および 2 の行を持つものです。これを効率的に行うにはどうすればよいですか?4ThingType1itemable_id 32