postgresql 聚合函数存储在哪里?

Posted

技术标签:

【中文标题】postgresql 聚合函数存储在哪里?【英文标题】:Where are postgresql aggregate functions stored? 【发布时间】:2018-10-08 19:11:56 【问题描述】:

我创建了一个聚合函数,我什至可以使用它。但我在任何数据库层次结构下都找不到它。它不在函数下。

它们是否隐藏在视线之外?我正在使用 pgAdmin ide。

【问题讨论】:

postgresql.org/docs/10/static/catalog-pg-aggregate.html 但是:为什么你想知道? 编辑、查看其妆容等... 在 psql 中:\da[S] [PATTERN] list aggregates 聚合函数 gui 未在 pgAdmin4 中实现,这就是它未显示在浏览器树中的原因。 我使用 pgadmin3 是因为我只是讨厌 pgadmin4,聚合函数在那里也不可见。 【参考方案1】:

查找此类查询的最佳方法是将 psql 与 --echo-hidden 选项一起使用。然后运行 ​​psql 元命令,您将看到使用的查询

SELECT n.nspname as "Schema",
  p.proname as "Name",
  pg_catalog.pg_get_function_result(p.oid) as "Result data type",
  pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types",
 CASE
  WHEN p.proisagg THEN 'agg'
  WHEN p.proiswindow THEN 'window'
  WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN 'trigger'
  ELSE 'normal'
 END as "Type"
FROM pg_catalog.pg_proc p
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE pg_catalog.pg_function_is_visible(p.oid)
      AND n.nspname <> 'pg_catalog'
      AND n.nspname <> 'information_schema'
ORDER BY 1, 2, 4;

【讨论】:

谢谢,我会保存这个。我认为这是我使用的 IDE (pgAdmin)。我切换到 DBeaver,我可以在层次结构中看到 Agg 函数。

以上是关于postgresql 聚合函数存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

从 PostgreSQL 到 Cassandra - 不支持聚合函数

Postgresql - 窗口函数聚合

具有分组依据的 PostgreSQL 聚合函数

PostgreSQL中的选择或布尔聚合函数

Postgresql:如何在聚合函数之后显示附加列

在 PostgreSQL 的窗口函数中按降序聚合排序