我想检查一组记录中所有(浮点数)的值是否相等。例如:
SELECT ..., equal(my_field) FROM my_table WHERE ... GROUP BY ...
当 equal(my_field)
返回 true
时,表示所有 my_field
的值都相等。
我想检查一组记录中所有(浮点数)的值是否相等。例如:
SELECT ..., equal(my_field) FROM my_table WHERE ... GROUP BY ...
当 equal(my_field)
返回 true
时,表示所有 my_field
的值都相等。
SELECT min(field)=max(field) WHERE ... GROUP BY...
然而,这种方法并未考虑到 NULL 值。如果该列中可能存在 NULL 值,则必须添加一个检查。
另外要记住,对于浮点数,相等性并不总是简单的检查。
count(distinct my_column) = 1
。但是float
是一种近似数据类型,所以您可能得到您期望的正确计数。详情请参见:http://floating-point-gui.de/ - user330315