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 サイトの他の関連記事を参照してください。