問題タブ [lateral-join]

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 投票する
3 に答える
968 参照

postgresql - PostgreSQL: LATERAL 結合を介して関連付けられた値の合計

PostgreSQL テーブルのデータをクリーンアップしようとしていますが、一部のレコードの列に多数の冒とく的な表現が含まれていemail_addressます (問題のレコードは、バグによる不満の結果として興奮したユーザーによって入力されましたが、その後修正されました) ):

目的のクエリ出力

データ テーブルの各行に冒とく的なスコアで注釈を付け、スコアでレコードを並べ替えるクエリを作成して、人間が注釈付きデータ (Web アプリに表示される) を調べて必要なアクションを実行できるようにしたいと考えています。 :


試み #1

私が取っているアプローチは、正規表現のリストを作成することです (今は 2 つの問題があります...) とスコアです。これにより、email_address 列にその単語が見つかった場合、非常に冒とく的な単語が大きな冒涜スコアに寄与します。私profanitiesのテーブルは次のようになります。

ラテラルジョイン

LATERAL関数の結合を使用してregexp_matches、それぞれからすべての冒とく的な表現を抽出できることがわかりましたemail_address(ただし、冒とく的な表現のないレコードは破棄されます)。

これにより、次の結果が生成されます。

サブセレクト

また、次の SQL を使用して、各レコードの冒涜スコアの小計の配列を取得する方法も見つけました。

次のように、すべての行 (冒涜のない行を含む) を正しく生成します。


問題

横結合の結果を合計して目的の出力を得るにはどうすればよいですか?

望ましい結果を得るために使用できる別の戦略はありますか?


この質問のライブ コード フィドルをhttp://sqlfiddle.com/#!17/6685c/4に投稿しました。

0 投票する
2 に答える
566 参照

sql - OUTER APPLY と OUTER JOIN の違いは何ですか? また、それぞれをいつ使用するのですか?

SQL Server では、Left JOIN と OUTER JOIN の違いは何ですか?