SQL結合サブクエリの問題/パフォーマンス

CXJ

次の「架空の」クエリと同じ結果セットを取得するクエリを作成する方法はありますか?

CREATE OR REPLACE VIEW v_report AS
    SELECT
        meta.refnum         AS  refnum,
        codes.svc_codes     AS  svc_codes
    FROM
        t_bill AS meta

    JOIN (SELECT
        string_agg(p.service_code, ':') AS svc_codes
      FROM
        t_bill_service_services AS p
      WHERE
        p.refnum = meta.refnum
    ) AS codes
    ON meta.refnum = codes.refnum

このクエリは架空のものです。これは、クエリのこの部分から参照できない句meta.refnum内のエラーメッセージが表示されないためWHEREです。

注1:簡潔にするために、他のさまざまなテーブルの多くの列も結合されていますが、省略されています。これにより、サブクエリを排除するいくつかのより単純なソリューションが排除される可能性があります。

注2:p.refnumサブクエリに列を追加してaGROUP BY p.refnumを実行し、WHERE完全に削除することで、この作業を行うことができます(「作業」の一部の定義の場合)が、これはもちろん、t_bill_service_servicesテーブル全体がスキャンされて並べ替えられることを意味します-非常にテーブルがかなり大きいので、私の状況では非常に遅いです。

(SQLフレーバーはPostgresですが、string_agg()呼び出しのみが非標準SQLである必要があるため、無関係である必要があります。)

ニック

JOIN派生テーブルに移動するのではなくSELECT、クエリの一部にサブクエリを配置できます。このセクションでは、サブクエリで親テーブルの値にアクセスできるため、他のテーブルの関連するエントリのみを集計します。例えば:

select meta.refnum,
       (SELECT string_agg(p.service_code, ':')
        FROM t_bill_service_services AS p
        WHERE p.refnum = meta.refnum
       ) AS svc_codes
from t_bill meta

dbfiddleのデモ

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

サブクエリと結合のパフォーマンス

分類Dev

最新の日付を見つけるためのサブクエリとの左側結合のパフォーマンスの問題

分類Dev

SQL内部結合のパフォーマンスの問題

分類Dev

サブクエリを使用したMYSQLクエリのパフォーマンスの問題

分類Dev

EntityFrameworkでのテーブル結合のパフォーマンスの問題

分類Dev

SQL結合カウントクエリのパフォーマンスの向上

分類Dev

RegexクエリのMongoDBパフォーマンスの問題

分類Dev

再帰クエリのパフォーマンスの問題

分類Dev

MongoDBクエリのパフォーマンスの問題

分類Dev

linqクエリのパフォーマンスの問題

分類Dev

SQLサブクエリとテーブル結合の問題

分類Dev

mysqlのパフォーマンスはサブクエリと制限で結合します

分類Dev

単純な場合のサブクエリのパフォーマンス

分類Dev

SQLサブクエリのパフォーマンスの改善が必要

分類Dev

SQLクエリのパフォーマンスの問題の全表スキャン

分類Dev

パンダの内部結合のパフォーマンスの問題

分類Dev

複数の並列クエリを使用する場合のパフォーマンスの問題-SqlClient

分類Dev

MATCH と SELECT を一緒に使用する場合のクエリ パフォーマンスの問題 OrientDB

分類Dev

「select」SQLiteリクエストのパフォーマンスの問題

分類Dev

DECENDANTS使用時のMDXクエリのパフォーマンスの問題

分類Dev

集計クエリでのMySQLViewのパフォーマンスの問題

分類Dev

クエリでのMySqlのパフォーマンスの問題

分類Dev

クエリのパフォーマンスの比較:結合とテーブルからの区別の選択

分類Dev

NOTINクエリでのSparkパフォーマンスの問題

分類Dev

SQLServerクエリの断続的なパフォーマンスの問題

分類Dev

単純なクエリでのパフォーマンスの問題

分類Dev

パフォーマンスの問題のクエリを特定する方法 - MYSQL

分類Dev

2つのテーブルの結合でのSparkパフォーマンスの問題

分類Dev

パフォーマンスの問題のために結合する際の一時テーブルの使用

Related 関連記事

  1. 1

    サブクエリと結合のパフォーマンス

  2. 2

    最新の日付を見つけるためのサブクエリとの左側結合のパフォーマンスの問題

  3. 3

    SQL内部結合のパフォーマンスの問題

  4. 4

    サブクエリを使用したMYSQLクエリのパフォーマンスの問題

  5. 5

    EntityFrameworkでのテーブル結合のパフォーマンスの問題

  6. 6

    SQL結合カウントクエリのパフォーマンスの向上

  7. 7

    RegexクエリのMongoDBパフォーマンスの問題

  8. 8

    再帰クエリのパフォーマンスの問題

  9. 9

    MongoDBクエリのパフォーマンスの問題

  10. 10

    linqクエリのパフォーマンスの問題

  11. 11

    SQLサブクエリとテーブル結合の問題

  12. 12

    mysqlのパフォーマンスはサブクエリと制限で結合します

  13. 13

    単純な場合のサブクエリのパフォーマンス

  14. 14

    SQLサブクエリのパフォーマンスの改善が必要

  15. 15

    SQLクエリのパフォーマンスの問題の全表スキャン

  16. 16

    パンダの内部結合のパフォーマンスの問題

  17. 17

    複数の並列クエリを使用する場合のパフォーマンスの問題-SqlClient

  18. 18

    MATCH と SELECT を一緒に使用する場合のクエリ パフォーマンスの問題 OrientDB

  19. 19

    「select」SQLiteリクエストのパフォーマンスの問題

  20. 20

    DECENDANTS使用時のMDXクエリのパフォーマンスの問題

  21. 21

    集計クエリでのMySQLViewのパフォーマンスの問題

  22. 22

    クエリでのMySqlのパフォーマンスの問題

  23. 23

    クエリのパフォーマンスの比較:結合とテーブルからの区別の選択

  24. 24

    NOTINクエリでのSparkパフォーマンスの問題

  25. 25

    SQLServerクエリの断続的なパフォーマンスの問題

  26. 26

    単純なクエリでのパフォーマンスの問題

  27. 27

    パフォーマンスの問題のクエリを特定する方法 - MYSQL

  28. 28

    2つのテーブルの結合でのSparkパフォーマンスの問題

  29. 29

    パフォーマンスの問題のために結合する際の一時テーブルの使用

ホットタグ

アーカイブ