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_a
escore_b
imprimiendo 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