PostgreSQL 等量聚合

web*_*ker 2 postgresql aggregate

我想检查一组记录的所有(浮动)值是否相等。就像是

SELECT ..., equal(my_field) FROM my_table WHERE ... GROUP BY ...
Run Code Online (Sandbox Code Playgroud)

哪里equal(my_field)的回报true,如果所有的值my_field相等。

Sam*_*nen 5

您可以使用 MIN 和 MAX 聚合

SELECT min(field)=max(field) WHERE ... GROUP BY...
Run Code Online (Sandbox Code Playgroud)

但这并没有考虑 NULL 值。如果这些可能在列中,您必须为此添加检查。

还请记住,使用浮点数相等并不总是很容易检查。