>  기사  >  데이터 베이스  >  ActiveRecord를 사용하여 MySQL에서 각 고유 사용자의 가장 최근 방문 시간을 검색하는 방법은 무엇입니까?

ActiveRecord를 사용하여 MySQL에서 각 고유 사용자의 가장 최근 방문 시간을 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 06:23:03388검색

How to Retrieve the Most Recent Visit Time for Each Unique User in MySQL with ActiveRecord?

ActiveRecord에서 MySQL과 함께 DISTINCT ON 사용

방대한 데이터를 처리할 때 데이터베이스 작업을 수행하면서 고유한 정보를 추출해야 하는 경우가 많습니다. 그러한 시나리오 중 하나는 각 개별 사용자의 최근 방문을 식별하는 것입니다.

질문:

DISTINCT ON을 사용하여 각 고유 사용자의 가장 최근 방문 시간을 검색하려고 시도하는 동안 구문을 사용하면 ActiveRecord::StatementInvalid 오류가 발생합니다. 사용된 쿼리는 다음과 같습니다.

<code class="ruby">Event.order(time: :desc).select('DISTINCT ON(user_id) user_id, time')</code>

해결책:

DISTINCT ON 구문은 PostgreSQL에만 해당되며 MySQL에는 적용되지 않습니다. ActiveRecord를 사용하여 MySQL에서 원하는 결과를 얻으려면 쿼리를 수정해야 합니다.

<code class="ruby">Events.group(:user_id).maximum(:time)</code>

출력:

이 수정된 쿼리는 예상되는 출력을 생성합니다. 키는 고유한 사용자 ID를 나타내고 값은 가장 최근 방문 시간을 나타냅니다.

{21=>Tue, 18 Dec 2018 11:15:24 UTC +00:00, 23=>Thu, 20 Dec 2018 06:42:10 UTC +00:00}

위 내용은 ActiveRecord를 사용하여 MySQL에서 각 고유 사용자의 가장 최근 방문 시간을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.