Postgres:如何列出所有的聚合函数

自定义了一个聚合函数,但是在pgadmin上看不到,怎么能看到?

阅读 10.5k
4 个回答

已解决:

SELECT * FROM pg_proc WHERE proname = 'name' AND proisagg;

在psql里面输入\da可以打印所有用户定义的聚合函数。

test=# \da
                     聚集函数列表
 架构模式 | 名称 | 结果数据类型 | 参数数据类型 | 描述
----------+------+--------------+--------------+------
(0 行记录)

@polunzh 你的下述回答应该是错的吧。

SELECT * FROM pg_proc WHERE proname = 'name' AND proisagg;

proname = 'name'这个条件直接导致查询出的结果为空了啊。
经过验证,下述SQL文我觉得更加适合。

SELECT DISTINCT(proname) FROM pg_proc WHERE proisagg;

其中,之所以用上DISTINCT,是因为PostgreSQL的FUNCTION和许多其他编程语言一样是允许Overload的,
因此或查询出多个包含同样proname的记录,因此加上DISTINCT过滤一下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏