如何获得Postgres中两个字段的min()?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

假设我有这样的表格:

name | score_a | score_b
-----+---------+--------
 Joe |   100   |   24
 Sam |    96   |  438
 Bob |    76   |  101
 ... |   ...   |  ...

我想选择score_a和score_b的最小值。换句话说,就像:

SELECT name, MIN(score_a, score_b)
FROM table

结果当然是:

name | min
-----+-----
 Joe |  24
 Sam |  96
 Bob |  76
 ... | ...

然而,当我在Postgres中尝试这个时,我得到:“没有函数匹配给定的名称和参数类型,能可能需要添加明确的类型转换。”

是否有可能做我正在尝试的?

提问于
用户回答回答于

LEAST(a, b):

GREATESTLEAST功能中选择任意数量的表达式的列表,最大或最小值。表达式必须全部转换为通用的数据类型,这将成为结果的类型(详见10.5节)。列表中的NULL值将被忽略。仅当所有表达式求值为NULL时,结果才为NULL。 需要注意的是GREATEST,并LEAST没有在SQL标准,但有一个共同的扩展。如果任何参数为NULL,而不是仅当所有参数都为NULL时,其他一些数据库才会返回NULL ...

扫码关注云+社区