PostgreSQL等值聚合函数

3

我想检查一组记录中所有(浮点数)的值是否相等。例如:

SELECT ..., equal(my_field) FROM my_table WHERE ... GROUP BY ...

equal(my_field) 返回 true 时,表示所有 my_field 的值都相等。


count(distinct my_column) = 1。但是float是一种近似数据类型,所以您可能得到您期望的正确计数。详情请参见:http://floating-point-gui.de/ - user330315
1个回答

6
你可以使用MIN和MAX聚合函数。
SELECT min(field)=max(field) WHERE ... GROUP BY...

然而,这种方法并未考虑到 NULL 值。如果该列中可能存在 NULL 值,则必须添加一个检查。

另外要记住,对于浮点数,相等性并不总是简单的检查。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接