多个 Select 不同查询输出到 csv 文件

Multiple Select Distinct Queries Outputting to a csv File

我有一个 table,它有大约 200 个属性。对于每个属性,我想知道所有可能的值。大多数属性有 2 到 20 个可能的值。

如果属性可能有太多不同的值(例如邮政编码),那么我只想知道计数。 (请注意,这不需要是一个不同的计数,我更多地将计数步骤作为占位符,因此我维护来自源 table 的属性顺序而不是其他任何东西。)

我想将其保存到 csv 文件中,但如果需要为单个属性保存多个值,则不同的输出文件类型将是 acceptable。

对我要实现的目标的简化查询是:

COPY(
SELECT
(SELECT COUNT(id) FROM complete_file_301115) AS id,
(SELECT DISTINCT (title) FROM complete_file_301115) AS title,
(SELECT COUNT(firstname) FROM complete_file_301115) AS firstname,
(SELECT COUNT(lastname) FROM complete_file_301115) AS lastname,
(SELECT COUNT(address1) FROM complete_file_301115) AS address1,
(SELECT COUNT(address2) FROM complete_file_301115) AS address2,
(SELECT DISTINCT (city) FROM complete_file_301115) AS city,
(SELECT DISTINCT (county) FROM complete_file_301115) AS county,
(SELECT COUNT(postcode) FROM complete_file_301115) AS postcode,
(SELECT DISTINCT (gender) FROM complete_file_301115) AS gender,
(SELECT DISTINCT (job) FROM complete_file_301115) AS job,
(SELECT DISTINCT (children) FROM complete_file_301115) AS children) TO
'/Users/Shared/test123.csv' (FORMAT CSV, DELIMITER ',', HEADER, ENCODING LATIN1);

当我 运行 我的查询时,Postgres 给我错误:

ERROR:  more than one row returned by a subquery used as an expression

我知道这个错误基本上是说我不能在 csv 中为单个属性写入多个值。

我的问题是无论如何都要保存一个输出文件,其中包含每个属性所有可能的值,例如

编号:1,2,3,4
title: Mr, Mrs, Miss, Ms, Dr 等

非常感谢

您可以将其转换为文本。适合你吗?

 ...
 (array_to_string( array(SELECT DISTINCT (city) FROM complete_file_301115), ',') ) AS city,
 ...