首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在postgresql中获取三个列值的次项

问如何在postgresql中获取三个列值的次项
EN

Stack Overflow用户
提问于 2020-11-11 21:54:47
回答 1查看 25关注 0票数 0

获取列的次要值的常用函数是min(column),但我想做的是根据3列的值获取一行的次要值。例如,使用以下基表:

代码语言:javascript
复制
+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
|    2 |    1 |    3 |
|   10 |    0 |    1 |
|   13 |   12 |    2 |
+------+------+------+

我想按如下方式查询:

代码语言:javascript
复制
+-----------+
| min_value |
+-----------+
|         1 |
|         0 |
|         2 |
+-----------+

我找到了一个解决方案,如下所示,但是针对SQL,而不是Postgresql。所以我不能让它在postgresql中工作:

代码语言:javascript
复制
    select
        (
            select min(minCol)
            from (values (t.col1), (t.col2), (t.col3)) as minCol(minCol)
        ) as minCol
    from t

我可以使用PostgreSQL语句编写一些东西,但我想为case编写一个类似上面的查询。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 21:56:21

您可以使用least() (最大值为greatest() )

代码语言:javascript
复制
select least(col1, col2, col3) as min_value
from the_table
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64787796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档