PostgreSQL 将 COMPOUND 查询输出导出到 CSV

PostgreSQL Export COMPOUND Query Output to CSV

我有一个功能齐全的复合 PostgreSQL 查询...

SELECT * FROM 
(SELECT date_trunc('day', date) date, (array_agg(open ORDER BY time 
ASC))[1] o, MAX(high) h, MIN(low) l, (array_agg(close ORDER BY time 
DESC))[1] c
FROM 
(SELECT * FROM ES_test WHERE time BETWEEN 
(SELECT pit_open FROM "contracts" WHERE root_symbol = '@ES' LIMIT 1) 
AND 
(SELECT pit_close FROM "contracts" WHERE root_symbol = '@ES' LIMIT 1)) 
AS pit
GROUP BY date_trunc('day', date) ORDER BY date) AS pit_daily INNER 
JOIN trading_dates ON pit_daily.date = trading_dates.date;

我想将此查询的输出导出到 csv。我已经尝试了 COPY 方法...

Copy (Select * From foo) To '/tmp/test.csv' With CSV DELIMITER ',';

和 \copy 方法...

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with 
csv

没有任何成功。当我尝试这些时,我收到多个错误,包括解析错误或在查询中的 "AS" 之一之后或在引用创建 csv 文件的位置的 "TO" 之后纠结。当我尝试创建临时 table 或临时视图时,我遇到了类似的错误。有什么建议么?这是版本...
'psql (PostgreSQL) 12.2 (Ubuntu 12.2-2.pgdg18.04+1)'

根据错误消息和注释,您的文件名前似乎有一个所谓的 "smart" 引号,或者 backtick/grave。您需要它是一个直接的 ASCII apostrophe/single 引号。

无论您使用什么来编辑您的查询,似乎都太聪明了一半。但它似乎也会搞砸你其余的引号,而不仅仅是这些引号。