gpt4 book ai didi

json - 从 PostgreSQL 中的 json 列解压数据

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

我有一个属性表,其中一个包含 11 个数字元素的 json 数组。我需要对 json 数组中的数据进行一些聚合(没什么特别的,只是平均值、最大/最小统计信息等)。

找到的通用答案 here看起来非常适合将数据重新格式化为临时 View 以便快速查询。我将 jsonb_each 更改为 son_each(也许这会起作用?)并且没有返回任何错误,但最终只有一个标题为“create_jsonb_pivot_view”的列没有数据。

函数如下:

create or replace function create_jsonb_pivot_view
(table_name text, regular_columns text, json_column text)
returns void language plpgsql as $$
declare
s text;
begin
execute format ($fmt$
select string_agg(format('%s->>''%s'' "%s"', key, key), ',')
from (
select distinct key
from %s, json_each(%s)
order by 1
) s;
$fmt$, json_column, '%s', '%s', table_name, json_column)
into s;
execute format('
drop view if exists %s_view;
create view %s_view as
select %s, %s from %s',
table_name, table_name, regular_columns, s, table_name);
end $$;

最后是使用函数的查询:

select create_jsonb_pivot_view('table', 'A, B, C, D', 'params')

我以前从未在 SQL 中使用过函数,所以这对我来说是一个新领域。也许有一种不同的更好的方法来共同实现我的目标?

最佳答案

没关系,它确实有效 - 只是花了一些时间来处理这个功能。本来打算删除我的帖子,但如果这对其他人有帮助,我会离开它!

关于json - 从 PostgreSQL 中的 json 列解压数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135121/

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