【问题标题】:PostgreSQL equal aggregatePostgreSQL 相等聚合
【发布时间】:2016-04-24 08:35:54
【问题描述】:

我想检查一组记录的所有(浮点)值是否相等。 类似的东西

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

如果my_field 的所有值都相等,则equal(my_field) 返回true

【问题讨论】:

  • count(distinct my_column) = 1。但是float 是一种近似数据类型,因此您可能会得到您期望的正确计数。详情见:floating-point-gui.de

标签: postgresql aggregate


【解决方案1】:

您可以使用 MIN 和 MAX 聚合

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

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

还请记住,使用浮点数进行相等性检查并不总是那么简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2015-12-21
    • 2019-05-06
    • 2018-01-12
    • 2016-10-12
    • 2016-07-23
    • 2010-10-30
    相关资源
    最近更新 更多