


Comment récupérer la participation la plus récente de chaque membre dans MySQL ?
Sélectionnez uniquement la dernière valeur en utilisant Group By dans MySQL
Lorsque vous essayez de récupérer la participation la plus récente de chaque membre d'une table, vous peut rencontrer une situation où vous récupérez la participation initiale au lieu de la dernière à l'aide d'une simple requête GROUP BY. Pour résoudre ce problème, il existe plusieurs approches :
Utilisation d'une sous-requête
Vous pouvez utiliser une sous-requête pour trouver l'horodatage maximum pour chaque membre, puis rejoindre la table d'origine sur cet horodatage pour récupérer la fréquentation correspondante :
<code class="sql">SELECT id_branch_channel, id_member, attendance, timestamp, id_member 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 ) OR timestamp IS NULL GROUP BY id_event, id_member;</code>
Utilisation d'une table dérivée
Vous pouvez créer une table dérivée qui classe les lignes par horodatage par ordre décroissant et puis utilisez cette table comme source pour votre requête GROUP BY :
<code class="sql">SELECT id_branch_channel, id_member, attendance, timestamp, id_member FROM ( SELECT id_branch_channel, id_member, attendance, timestamp, id_member FROM view_event_attendance WHERE id_event = 782 ORDER BY timestamp DESC ) AS sorted GROUP BY id_event, id_member;</code>
Utilisation d'une fonction de fenêtre
Vous pouvez utiliser une fonction de fenêtre pour trouver la valeur maximale dans lignes pour chaque membre, puis utilisez cette valeur maximale pour filtrer les lignes :
<code class="sql">SELECT id_branch_channel, id_member, attendance, timestamp, id_member FROM ( SELECT id_branch_channel, id_member, attendance, timestamp, id_member, MAX(timestamp) OVER (PARTITION BY id_event, id_member) AS max_timestamp FROM view_event_attendance WHERE id_event = 782 ) AS subquery WHERE timestamp = max_timestamp GROUP BY id_event, id_member;</code>
Utilisation d'une astuce de concaténation de chaînes
Cette approche consiste à concaténer l'horodatage et la présence dans une seule chaîne et en utilisant la fonction MAX() pour trouver la plus grande chaîne. En extrayant la fréquentation de la chaîne maximale, vous récupérez efficacement la dernière fréquentation :
<code class="sql">SELECT id_branch_channel, id_member, SUBSTR(MAX(CONCAT(FROM_UNIXTIME(timestamp), attendance)), 20) AS attendance, timestamp, id_member FROM view_event_attendance WHERE id_event = 782 GROUP BY id_event, id_member;</code>
La meilleure approche pour votre situation spécifique dépend des caractéristiques de performances de votre base de données et de la taille de votre ensemble de données.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
