ホームページ  >  記事  >  データベース  >  MySQL ActiveRecord ですべてのユニーク ユーザーの最新の訪問を取得するにはどうすればよいですか?

MySQL ActiveRecord ですべてのユニーク ユーザーの最新の訪問を取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 01:02:29530ブラウズ

How to Get the Latest Visits of All Unique Users in MySQL ActiveRecord?

MySQL ActiveRecord で DISTINCT ON に相当するものを使用する方法

要件は、イベントからすべての個別のユーザーの最新の訪問を取得することですテーブル。 ActiveRecord の MySQL で DISTINCT ON(user_id) 句を使用すると、構文エラーが発生します。

MySQL で DISTINCT ON に相当するのは、MAX() 関数で GROUP BY を使用することです。

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

このクエリは結果を user_id でグループ化し、各グループの time 列の最大値を返します。出力は、user_id をキー、最新の訪問時刻を値とするハッシュになります。

{
  21 => "2018-12-18 09:44:59",
  42 => "2018-12-19 12:08:59"
}

注: DISTINCT ON(columns) は PostgreSQL 固有の構文です。 MySQL はこの構文を直接サポートしていません。

以上がMySQL ActiveRecord ですべてのユニーク ユーザーの最新の訪問を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。