Ruby on Rails : DB 열에서 최대 값 얻기


125

현재 DB에서 일직선 SQL 쿼리를 만들 수 있습니다.

SELECT MAX(bar) FROM table_name

그리고 해당 테이블의 최대 값으로 반환됩니다. 그러나 Rails에서 동등한 통화라고 생각하는 것은 작동하지 않습니다. 난 전화하고있어:

Bar.all(:select => "Max(bar)")

이것은 단순히 다음과 같이 반환됩니다.

[#<Bar >]

내가 부르고있는 열에는 일련의 식별 번호가 있으며, 가장 큰 번호를 찾고 있습니다. Rails에서 이것에 접근하는 다른 방법이 있습니까?

답변:


272

모델 이름이 Bar이고 이름이 열이라고 가정하면 다음 과 bar같이 작동합니다.

Bar.maximum("bar")

자세한 내용은 계산관한 훌륭한 Rails Guides 섹션을 참조하십시오 .


아하! 그렇습니다. 나는 당신이 대답하자마자 답변을 확인하겠습니다. 감사!
보어

6

한 가지 더

Bar.select("Max(bar) as max_bar").first.max_bar

5
왜 이렇게 하시겠습니까? 더 장황하고 정확히 같은 쿼리를 실행 Bar.maximum(:bar)
하므로이

19
예를 들어, 최소 및 최대를 모두 원하는 경우 :Bar.select("MAX(bar) max_bar, MIN(bar) min_bat").first.attributes
Shalev Shalit

질문하는 사람은 최대를 원했습니다.
Chris Peters

1
그는 그 질문에 대한 정답을 제시했습니다. 아마도 가장 좋은 대답은 아니지만 그는 아무런 문제가 없었습니다.
david0116
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.