Digamos que eu tenho uma tabela como esta:
name | score_a | score_b
-----+---------+--------
Joe | 100 | 24
Sam | 96 | 438
Bob | 76 | 101
... | ... | ...
Gostaria de selecionar o mínimo de score_a e score_b. Em outras palavras, algo como:
SELECT name, MIN(score_a, score_b)
FROM table
Os resultados, é claro, seriam:
name | min
-----+-----
Joe | 24
Sam | 96
Bob | 76
... | ...
No entanto, quando eu tento isso no Postgres, recebo: "Nenhuma função corresponde ao nome e aos tipos de argumento. Talvez seja necessário adicionar conversões de tipo explícitas". MAX () e MIN () parecem funcionar em linhas, em vez de colunas.
É possível fazer o que estou tentando?
fonte
MAX()
de dois valores, éGREATEST(a, b)
:)Aqui está o link para documentos para a
LEAST()
função no PostgreSQL:http://www.postgresql.org/docs/current/static/functions-conditional.html#AEN15582
fonte
Você pode obter a resposta colocando esses dados em uma coluna como esta:
Aqui, estamos colocando o valor mínimo entre
score_a
escore_b
e imprimindo o mesmo, armazenando esse valor em uma coluna denominadaminimum_score
.fonte
min(expression)
existe. Definição do doc: valor mínimo da expressão entre todos os valores de entrada with` expression` é qualquer numérico, cadeia, data / hora, rede, ou tipo enum, ou matrizes desses tipos