gpt4 book ai didi

PostgreSQL 交叉表查询从辅助查询中提取列

转载 作者:行者123 更新时间:2023-11-29 13:06:10 27 4
gpt4 key购买 nike

我的 Postgres 交叉表查询如下:

SELECT mthreport.*
FROM crosstab
('SELECT
to_char(ipstimestamp, ''mon DD HH24h'') As row_name,
varid::text || log.varid || ''_'' || ips.objectname::text As bucket,
COUNT(*)::integer As bucketvalue
FROM loggingdb_ips_boolean As log
INNER JOIN IpsObjects As ips
ON log.Varid=ips.ObjectId
GROUP BY to_char(ipstimestamp, ''yyyy MM DD HH24h''), row_name, bucket
ORDER BY to_char(ipstimestamp, ''yyyy MM DD HH24h''), row_name, bucket')
As mthreport(item_name text,
jan3 integer, feb4 integer, mar5 integer)

有什么方法可以从辅助查询中提取最后一行中列举的三个项目(jan3 integer 等)?我尝试用 SELECT xyz FROM zyx 替换最后一行,但这不起作用。

最佳答案

在查询的基本形式中,您必须在调用 SELECT 中拼出列名和类型。

crosstabN(text)使用预定义返回类型的变体。

对于完全自动化,您必须将每个单独的查询包装到一个函数中,您可以在其中预定义返回类型。我发布了一个详细的例子here .

关于PostgreSQL 交叉表查询从辅助查询中提取列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com