如何从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 |
我需要单选择查询来获取最小值和最大值 . 怎么解决这个问题 . 条件是(其中id = 4)但我需要的结果是最小值为05,最大值为25来自员工表 .
2 回答
我建议使用
LEAST
和GREATEST
函数 . 这是reference .您想要的查询只需选择id,并将每列插入这两个函数,如下所示:
这是SQL Fiddle .
EDIT
我也尝试使用PostgreSQL小提琴,以及both worked .
对两列a,b使用公式,如:
对于MAX - ((a b)abs(a-b))/ 2
对于MIN - ((a b) - abs(a-b))/ 2
所以SQL就像:
在您的情况下将其概括为4个值 .