Maison  >  Article  >  base de données  >  Comment obtenir les dernières visites de tous les utilisateurs uniques dans MySQL ActiveRecord ?

Comment obtenir les dernières visites de tous les utilisateurs uniques dans MySQL ActiveRecord ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 01:02:29530parcourir

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

Comment utiliser l'équivalent de DISTINCT ON dans MySQL ActiveRecord

L'exigence est de récupérer les dernières visites de tous les utilisateurs distincts à partir des événements tableau. L'utilisation de la clause DISTINCT ON(user_id) avec MySQL dans ActiveRecord entraîne une erreur de syntaxe.

L'équivalent MySQL de DISTINCT ON consiste à utiliser GROUP BY avec la fonction MAX() :

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

Cette requête regroupera les résultats par user_id et renverra la valeur maximale de la colonne time pour chaque groupe. La sortie sera un hachage avec l'id_utilisateur comme clé et l'heure de la dernière visite comme valeur :

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

Remarque : DISTINCT ON(columns) est une syntaxe spécifique à PostgreSQL. MySQL ne prend pas directement en charge cette syntaxe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn