Maison >base de données >tutoriel mysql >Comment récupérer la dernière fréquentation de chaque utilisateur à l'aide de la clause GROUP BY de MySQL ?
Sélection de la dernière valeur à l'aide de Group By dans MySQL
Lorsque vous essayez de récupérer la participation la plus récente de chaque utilisateur à l'aide de la clause GROUP BY de MySQL, vous pouvez rencontrer des cas où la fréquentation initiale est renvoyée au lieu de la dernière valeur souhaitée.
Utilisation d'une sous-requête
Une solution consiste à utiliser une sous-requête pour identifier l'horodatage maximum pour chaque membre et joignez cette sous-requête à la table principale :
<code class="sql">SELECT * FROM view_event_attendance AS t1 WHERE id_event = 782 AND timestamp = (SELECT MAX(timestamp) FROM view_event_attendance AS t2 WHERE t1.id_member = t2.id_member AND t1.id_event = t2.id_event GROUP BY id_event, id_member) GROUP BY id_event, id_member;</code>
Utilisation de la concaténation et de MAX()
Une approche alternative consiste à concaténer les valeurs d'horodatage et de présence et puis en utilisant MAX() pour sélectionner les valeurs combinées :
<code class="sql">SELECT substring(max(concat(from_unixtime(timestamp),attendance)) from 20) as attendance FROM view_event_attendance WHERE id_event = 782 GROUP BY id_event,id_member;</code>
Cette méthode renvoie uniquement la dernière valeur de présence pour chaque membre.
Sélection de l'horodatage/présence concaténé
Si vous préférez récupérer l'horodatage et les valeurs de présence concaténés, vous pouvez utiliser la requête suivante :
<code class="sql">SELECT concat(from_unixtime(timestamp),attendance), timestamp, attendance FROM view_event_attendance WHERE id_event = 782 GROUP BY id_event,id_member;</code>
Considérations sur les performances
Lors de la négociation avec de grands ensembles de données, les sous-requêtes peuvent être coûteuses en termes de calcul. La concaténation des valeurs et l'utilisation de MAX() peuvent offrir de meilleures performances. Cependant, il est important d'évaluer les exigences spécifiques et les caractéristiques de la base de données pour déterminer la solution optimale pour votre cas d'utilisation.
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!