Powiedzmy, że mam taki stół:
name | score_a | score_b
-----+---------+--------
Joe | 100 | 24
Sam | 96 | 438
Bob | 76 | 101
... | ... | ...
Chciałbym wybrać minimum score_a i score_b. Innymi słowy, coś takiego:
SELECT name, MIN(score_a, score_b)
FROM table
Wyniki byłyby oczywiście następujące:
name | min
-----+-----
Joe | 24
Sam | 96
Bob | 76
... | ...
Jednak gdy próbuję tego w Postgres, otrzymuję komunikat „Żadna funkcja nie pasuje do podanej nazwy i typów argumentów. Może być konieczne dodanie wyraźnych rzutów typu”. MAX () i MIN () wydają się działać w wierszach, a nie w kolumnach.
Czy można zrobić to, co próbuję?
źródło
MAX()
dwie wartości, toGREATEST(a, b)
:)Oto link do dokumentacji
LEAST()
funkcji w PostgreSQL:http://www.postgresql.org/docs/current/static/functions-conditional.html#AEN15582
źródło
Możesz uzyskać odpowiedź, umieszczając te dane w takiej kolumnie:
Tutaj umieszczamy minimalną wartość między
score_a
iscore_b
i drukujemy to samo, przechowując tę wartość w kolumnie o nazwieminimum_score
.źródło
min(expression)
istnieje. Definicja z dokumentu: minimalna wartość wyrażenia dla wszystkich wartości wejściowych z „wyrażeniem” to dowolna liczba, ciąg znaków, data / godzina, typ sieci lub wyliczenia albo tablice tych typów