如何在postgresql中找到同一行的最小值

Ram*_*h S 1 mysql postgresql

如何从PostgreSQL中的行级(不在列中)获取最小值,最大值.

 postgresql> SELECT * FROM employee;
    +------+------+------------+--------------------+
    | id   | name | q1  |  q2 | q3  | q4 |
    +------+------+------------+--------------------+
    |    1 | John | 20  | 30  | 10  |  4  |
    |    2 | Ram  | 07  | 10  | 03  | 04  |
    |    3 | John | 05  | 03  | 15  | 40  | 
    |    4 | Sree | 12  | 05  | 20  | 25  | 
Run Code Online (Sandbox Code Playgroud)

我需要单选择查询来获取最小值和最大值.怎么解决这个问题. 条件是(其中id = 4)但我需要的结果是最小值为05,最大值为25来自员工表.

Ada*_*331 5

我建议使用LEASTGREATEST函数.这是一个参考.

您想要的查询只需选择id,并将每列插入这两个函数,如下所示:

SELECT id, name,
  LEAST(q1, q2, q3, q4) AS minValue,
  GREATEST(q1, q2, q3, q4) AS maxValue
FROM employee
WHERE id = 4;
Run Code Online (Sandbox Code Playgroud)

这是SQL小提琴.

编辑

我也尝试使用PostgreSQL小提琴,但两者都有效.