Digamos que tengo una mesa como esta:
name | score_a | score_b
-----+---------+--------
 Joe |   100   |   24
 Sam |    96   |  438
 Bob |    76   |  101
 ... |   ...   |  ...
Me gustaría seleccionar el mínimo de score_a y score_b. En otras palabras, algo como:
SELECT name, MIN(score_a, score_b)
FROM table
Los resultados, por supuesto, serían:
name | min
-----+-----
 Joe |  24
 Sam |  96
 Bob |  76
 ... | ...
Sin embargo, cuando pruebo esto en Postgres, me sale: "Ninguna función coincide con el nombre dado y los tipos de argumento. Es posible que deba agregar conversiones de tipos explícitos". MAX () y MIN () parecen funcionar en filas en lugar de columnas.
¿Es posible hacer lo que intento?
fuente

MAX()dos valores, esGREATEST(a, b):)Aquí está el enlace a los documentos para la
LEAST()función en PostgreSQL:http://www.postgresql.org/docs/current/static/functions-conditional.html#AEN15582
fuente
Puede obtener la respuesta colocando esos datos en una columna como esta:
Aquí, estamos poniendo el valor mínimo entre
score_aescore_bimprimiendo el mismo almacenando ese valor en una columna llamadaminimum_score.fuente
min(expression)existe. Definición del documento: el valor mínimo de expresión en todos los valores de entrada con 'expresión' es cualquier tipo numérico, cadena, fecha / hora, red o enumeración, o matrices de estos tipos