问题描述
使用交叉表方法动态旋转建议here的hstore。有什么方法可以立即运行返回的sql,还是有一种方法可以调用原始交叉表,然后运行sql作为唯一结果而不是运行两个查询来返回数据透视表?
所以当我运行此查询
SELECT format(
$s$SELECT * FROM crosstab(
$$SELECT h.id,kv.*
FROM hstore_test h,each(hstore_col) kv
ORDER BY 1,2$$,$$SELECT unnest(%L::text[])$$
) AS t(id int,%s text);
$s$,array_agg(key) -- escapes strings automatically,string_agg(quote_ident(key),' text,') -- needs escaping!
) AS sql
FROM (
SELECT DISTINCT key
FROM hstore_test,skeys(hstore_col) key
ORDER BY 1
) sub;
它返回如下结果:
SELECT * FROM crosstab(
$$SELECT h.id,kv.*
FROM hstore_test h
LEFT JOIN LATERAL each(hstore_col) kv ON TRUE
ORDER BY 1,$$SELECT unnest('{key1,key2,key3}'::text[])$$
) AS t(id int,key1 text,key2 text,key3 text);
我想做的是使用函数或第一个查询周围的另一个查询。返回第二个查询的结果,并使用返回的数据构建实例化视图
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)