当前位置:  开发笔记 > 前端 > 正文

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

如何解决《如何获得Postgres中两个字段的MIN()?》经验,为你挑选了2个好方法。

假设我有一个这样的表格:

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中尝试这个时,我得到,"没有函数匹配给定的名称和参数类型.您可能需要添加显式类型转换." MAX()和MIN()似乎跨行而不是列.

有可能做我正在尝试的事情吗?



1> cagcowboy..:

至少(a,b):

GREATESTLEAST功能中选择任意数量的表达式的列表,最大或最小值.表达式必须全部可转换为公共数据类型,这将是结果的类型(有关详细信息,请参见第10.5节).列表中的NULL值将被忽略.仅当所有表达式求值为NULL时,结果才为NULL.

需要注意的是GREATEST,并LEAST没有在SQL标准,但有一个共同的扩展.如果任何参数为NULL,则其他一些数据库使它们返回NULL,而不是仅当所有数据都为NULL时才返回NULL ...


对于像我这样需要两个值的'MAX()`的人来说,它是'最棒的(a,b)`:)

2> Bill Karwin..:

这是LEAST()PostgreSQL中函数文档的链接:

http://www.postgresql.org/docs/current/static/functions-conditional.html#AEN15582

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有