1

PostgreSQL 데이터베이스와 함께 Rails 앱을 작업하고 있습니다. 나는 8 이들의 차이가있을 것입니다 내가 어떤 연속적인 행 위의 경우에두 연속 행의 최대 열 차이

처럼 MEDIA_COUNT의 최대 차이를 발견하기 위해 필요한이

ID media_count created_at 
1 10   01-01-2017 
2 12   02-01-2017 
3 20   03-01-2017 
4 25   04-01-2017 

같은 레코드가있는 테이블 명명 업로드가 행

ID media_count created_at 
2 12   02-01-2017 
3 20   03-01-2017 

그런 쿼리를 만드는 방법을 모릅니다.

답변

1

당신이 시도 할 수있는 사항은 다음과 같습니다

Upload.all.each_cons(2).max_by { |x1, x2| x2.media_count - x1.media_count } 

그 successiveness이 그렇지 않은 경우, 당신은 명시 적으로 열 이름을 제공 order 하나를 사용하여 all 방법을 교체해야합니다 (id 컬럼에 의해 결정된다고 가정 오름차순 정렬 선언 (예 : order(created_at: :asc)).

+1

고맙습니다. 완벽하게 작동합니다. & 그런 방법에 대해 알아야 할 것 같습니다. –

+0

그리고 쿼리 방법이 있습니까? 아니면이 방법이 더 좋습니까? –

+1

@MuhammadFaisalIqbal : 그렇습니다. 그러나 순수한 activerecord는 없습니다. 하위 쿼리 또는 임시 테이블을 구성하기 위해 적어도 부분적으로 일반 SQL을 사용해야합니다. – potashin