2016-04-24 7 views
0

Ich möchte überprüfen, ob alle (Gleit-) Werte einer Menge von Datensätzen gleich sind. some wiePostgreSQL gleiches Aggregat

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

Wo gleich (my_field) Retuns wahr, wenn alle Werte von my_field Gleichen sind.

Wie kann ich das tun? Dankten

+0

'count (distinct my_column) = 1'. Aber 'float' ist ein ungefährer Datentyp, so dass Sie möglicherweise die korrekte Anzahl erhalten, die Sie erwarten. Für Details siehe: http://floating-point-gui.de/ –

Antwort

2

Sie könnten MIN verwenden und MAX-Aggregate

SELECT min(field)=max(field) WHERE ... GROUP BY... 

Diese nicht in wenn NULL-Werte Rechnung trägt. Wenn diese in der Spalte sind, müssen Sie einen Haken hinzufügen.

Denken Sie auch daran, dass Gleichheit mit floats nicht immer einfach zu überprüfen ist.