как получить минимум более одного столбца в postregsql? - PullRequest
0 голосов
/ 08 июля 2010

Можете ли вы сделать что-то подобное в postresql?

select min(column1, column2) as Min, max(column1, column2) as Max from mytable;

Ответы [ 3 ]

3 голосов
/ 08 июля 2010

Вы хотите использовать функцию LEAST (a, b) sql.

Ответ на другой вопрос переполнения стека Как получить MIN () двух полей в Postgres?

SELECT LEAST(column1, column2) as Min,
       GREATEST(column1, column2) as Max
FROM mytable;

Официальная документация postgresql здесь .

2 голосов
/ 08 июля 2010

Вариант 1:

select CASE when a.min1 < a.min2 then a.min1 else a.min2 END as minimum,
CASE when a.max1 > a.max2 then a.max1 else a.max2 END as maximum
from (select min(col1) as min1, min(col2) as min2, max(col1) as max1, 
  max(col2) as max2 from myTable) a

Вариант 2:

select CASE when MIN(col1) < MIN(col2) THEN MIN(col1) ELSE MIN(col2) END as Minimum,
  CASE WHEN MAX(col1) > MAX(col2) THEN MAX(col1) ELSE MAX(col2) END as Maximum
from myTable

Окончательный вариант:

select LEAST(MIN(col1),MIN(col2)) as myMinimum, GREATEST(MAX(col1),MAX(col2)) as myMaximum from myTable

Как насчет этого?:)

0 голосов
/ 08 июля 2010
select 
    min(CASE when a.min1 < a.min2 then a.min1 else a.min2 END) as minimum, 
    max(CASE when a.max1 > a.max2 then a.max1 else a.max2 END) as maximum 
from myTable as a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...