2

「1」と「2」の列を持つテーブルがあります。

a | x  
a | y  
a | z  
b | x  
b | z  
c | y  

ネストされた値がないことを補完するクエリを作成したい

b | null | y  
c | null | x  
c | null | z  

次にarray_agg(two) group by one、 で選択します。

a {1 1 1}  
b {1 0 1}  
c {0 1 0}

そして最終的に COPY クエリを使用して CSV ファイルにエクスポートします

最初のステップでどのようなクエリを作成する必要がありますか?

4

1 に答える 1

1

CROSS JOINを使用して要素の可能なすべてのペアを作成し、次にLEFTJOINを使用して要素の各ペアが存在するかどうかを確認できます。

SELECT
    T1.one,
    T2.two,
    CASE WHEN your_table.one IS NULL THEN 0 ELSE 1 END AS is_present
FROM (SELECT DISTINCT one FROM your_table) T1
CROSS JOIN (SELECT DISTINCT two FROM your_table) T2
LEFT JOIN your_table
ON T1.one = your_table.one AND T2.two = your_table.two

次に、このクエリにGROUP BY T1.oneとを追加できます。ARRAY_AGG(...)

于 2012-01-05T08:31:38.433 に答える