Question

Disons que j'ai un tableau comme celui-ci:

name | score_a | score_b
-----+---------+--------
 Joe |   100   |   24
 Sam |    96   |  438
 Bob |    76   |  101
 ... |   ...   |  ...

Je voudrais sélectionner le minimum de score_a et score_b. En d'autres termes, quelque chose comme:

SELECT name, MIN(score_a, score_b)
FROM table

Les résultats seraient bien sûr les suivants:

name | min
-----+-----
 Joe |  24
 Sam |  96
 Bob |  76
 ... | ...

Cependant, lorsque j'essaie ceci dans Postgres, j'obtiens "Aucune fonction ne correspond aux types de nom et d'argument donnés. Vous devrez peut-être ajouter des conversions de types explicites. & Quot; MAX () et MIN () semblent fonctionner sur plusieurs lignes plutôt que colonnes.

Est-il possible de faire ce que je tente?

Était-ce utile?

La solution

MOINS (a, b):

  

Les fonctions GREATEST et LEAST sélectionnent la valeur la plus grande ou la plus petite dans une liste contenant un nombre quelconque d'expressions. Les expressions doivent toutes être convertibles en un type de données commun, qui sera le type du résultat (voir Section 10.5 pour plus de détails). Les valeurs NULL dans la liste sont ignorées. Le résultat sera NULL uniquement si toutes les expressions ont pour valeur NULL.

     

Notez que GREATEST et LEAST ne font pas partie du standard SQL, mais constituent une extension commune. Certaines autres bases de données leur font renvoyer NULL si l’un des arguments est NULL, plutôt que seulement lorsque tous les arguments sont NULL ...

Autres conseils

Voici le lien vers la documentation pour la fonction LEAST () dans PostgreSQL:

http://www.postgresql.org/docs/ current / static / functions-conditional.html # AEN15582

Vous pouvez obtenir la réponse en mettant ces données dans une colonne comme celle-ci:

SELECT name, MIN(score_a, score_b) as minimum_score
FROM table

Ici, nous plaçons la valeur minimale entre score_a et score_b et imprimons la même chose en stockant cette valeur dans une colonne nommée minimum_score .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top