PostgreSQL array_agg命令

PostgreSQL array_agg命令,第1张

概述表’动物’: animal_name animal_typeTom CatJerry MouseKermit Frog 查询: SELECT array_to_string(array_agg(animal_name),';') animal_names,array_to_string(array_agg(animal_type),';') anim 表’动物’:
animal_name animal_typeTom         CatJerry       MouseKermit      Frog

查询:

SELECT array_to_string(array_agg(animal_name),';') animal_names,array_to_string(array_agg(animal_type),';') animal_typesFROM animals;

预期结果:

Tom;Jerry;Kerimt,Cat;Mouse;FrogORTom;Kerimt;Jerry,Cat;Frog;Mouse

我可以确保在第一个聚合函数中的顺序将始终与第二个相同。
我的意思是我不想得到:

Tom;Jerry;Kermit,Frog;Mouse,Cat
如果你是一个Postgresql版本< 9.0然后: From: http://www.postgresql.org/docs/8.4/static/functions-aggregate.html

In the current implementation,the order of the input is in principle unspecifIEd. Supplying the input values from a sorted subquery will usually work,however. For example:

SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;

所以在你的情况下你会写:

SELECTarray_to_string(array_agg(animal_name),';') animal_typesFROM (SELECT animal_name,animal_type FROM animals) AS x;

array_agg的输入将是无序的,但是在两个列中都是相同的。如果你喜欢,你可以添加一个ORDER BY子句到子查询。

总结

以上是内存溢出为你收集整理的PostgreSQL array_agg命令全部内容,希望文章能够帮你解决PostgreSQL array_agg命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存