首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres width_bucket:函数width_bucket(整数,numeric[])不存在

Postgres width_bucket:函数width_bucket(整数,numeric[])不存在
EN

Stack Overflow用户
提问于 2022-04-25 03:09:43
回答 1查看 126关注 0票数 -1

当我运行一个查询时,当我将一个整数数组作为第二个参数传递给width_bucket时,我期望得到如下结果:

代码语言:javascript
复制
select width_bucket(5, array[0, 1, 2, 3, 4, 5, 6, 7, 8] )

但是,如果这个数组包含一个十进制数,如下所示:

代码语言:javascript
复制
select width_bucket( 5, array[0, 1.1, 2, 3, 4, 5, 6, 7, 8] )

我知道错误:

代码语言:javascript
复制
ERROR:  function width_bucket(integer, numeric[]) does not exist
LINE 1: select width_bucket( 5, array[0, 1.1, 2, 3, 4, 5, 6, 7, 8] )
               ^

我的用例是,我使用这一功能来计算数据的断点,它并不总是整数(而且我在其他地方见过在那个代码库中,所以我不知道为什么在这里不起作用)。

如何让width_bucket接受一个非整数数组?

编辑后,为width_bucket函数添加到Postgres文档的链接,它表示它接受“任意兼容射线”,尽管我不知道“兼容”数组类型列表是在哪里定义的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-26 16:01:14

错误信息在这里是误导的。问题不是width_bucket不支持数字数组,而是它似乎不支持操作数和阈值值之间的类型不匹配。

所有这些工作并返回相同的值:

代码语言:javascript
复制
select width_bucket( 5.0, array[0, 1.1, 2, 3, 4, 5, 6, 7, 8] )
select width_bucket( 5::numeric, array[0, 1.1, 2, 3, 4, 5, 6, 7, 8] )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71994130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档