我有一个功能齐全的复合 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”之后纠缠不清。当我尝试创建临时表或临时 View 时,我遇到了类似的错误。有什么建议么?这是版本...
'psql (PostgreSQL) 12.2 (Ubuntu 12.2-2.pgdg18.04+1)'
最佳答案
根据错误消息和评论,您的文件名之前似乎有一个所谓的“智能”引号,或者可能是一个反引号/坟墓。您需要它是一个直接的 ASCII 撇号/单引号。
无论您使用什么来编辑查询似乎都太聪明了一半。但它似乎确实会搞砸你的其他引号,而不仅仅是这些引号。
关于PostgreSQL 导出 COMPOUND 查询输出到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61332184/