作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个属性表,其中一个包含 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/
我是一名优秀的程序员,十分优秀!