programing

Postgres에서 두 필드의 MIN()을 얻으려면 어떻게 해야 합니까?

minimums 2023. 5. 13. 09:22
반응형

Postgres에서 두 필드의 MIN()을 얻으려면 어떻게 해야 합니까?

이런 테이블이 있다고 가정해 보겠습니다.

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

최소 score_a와 score_b를 선택하고 싶습니다.즉, 다음과 같은 것이 있습니다.

SELECT name, MIN(score_a, score_b)
FROM table

물론 결과는 다음과 같습니다.

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

하지만 Postgres에서 이것을 시도하면, "지정된 이름과 인수 유형에 일치하는 함수가 없습니다.명시적 유형 캐스트를 추가해야 할 수도 있습니다." MAX() 및 MIN()은 열이 아닌 에서 작동하는 것으로 나타납니다.

제가 하려는 일을 할 수 있을까요?

최소(a, b):

GREATEST그리고.LEAST함수는 식의 목록에서 가장 큰 값 또는 가장 작은 값을 선택합니다.식은 모두 결과 유형이 되는 공통 데이터 형식으로 변환할 수 있어야 합니다(자세한 내용은 섹션 10.5 참조).목록의 NULL 값은 무시됩니다.모든 식이 NULL로 평가되는 경우에만 결과가 NULL이 됩니다.

참고:GREATEST그리고.LEASTSQL 표준에는 없지만 공통 확장자입니다.일부 다른 데이터베이스에서는 모든 인수가 NULL인 경우에만 NULL을 반환합니다.

다음은 문서에 대한 링크입니다.LEAST()Postgre에서 기능SQL:

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

데이터를 다음과 같은 열에 넣으면 답을 얻을 수 있습니다.

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

여기서, 우리는 최소한의 값을 두었습니다.score_a그리고.score_b이름이 붙은 열에 해당 값을 저장하여 동일하게 인쇄합니다.minimum_score.

언급URL : https://stackoverflow.com/questions/318988/how-do-i-get-the-min-of-two-fields-in-postgres

반응형