2016-04-28 4 views
1

I持っているように、相対的な複雑ではありませんが、長いクエリ文字列:スプリットPostgresは読めるsnipptesに問い合わせる

SELECT array_to_json(array_agg(row_to_json(exp))) 
    FROM (
     SELECT label as name, (
    SELECT array_to_json(array_agg(row_to_json(opt))) 
     FROM (
      SELECT value as name, count as size FROM countoptions 
    ) opt 
    ) as children 
    FROM countoptions GROUP BY label 
    ) exp; 

その後、このクエリはより複雑になりますので、私はより多くのでクエリを分割する手法を探しています読み取り可能な部分。

答えて

0

Common Table Expressionsあなたが探していたのは?

WITHは、より大きい クエリで使用するための補助文を記述する手段を提供します。これらのステートメントは、共通テーブル という表現またはCTEとも呼ばれ、1つのクエリに対してのみ存在するテンポラリテーブル を定義するものと考えることができます。 WITH 句の各補助ステートメントは、SELECT、INSERT、UPDATE、またはDELETEになります。そして句 自体WITHもSELECT、 INSERT、UPDATE、またはちょうどあなたが大規模なデータセットを照会するとCTEは一時スペースがかかることを忘れないで

+1

を削除することができ、主声明に取り付けられています。 これらは読みやすさには優れていますが、内部的には最適化されていません。 – Zorg

関連する問題