Utilisez SQL (Access) pour obtenir les N premiers enregistrements de chaque groupe
Question :
Comment obtenir les n derniers enregistrements de chaque groupe en utilisant SQL dans Microsoft Access ?
Contexte :
Les utilisateurs disposent de tableaux nommés « Utilisateur » et « Progression » qui contiennent respectivement des informations sur l'utilisateur et son score. Ils ont besoin d'une requête pour afficher les trois scores les plus récents pour chaque utilisateur.
Réponse :
La requête imbriquée suivante récupère les trois scores les plus récents pour chaque utilisateur :
<code class="language-sql">SELECT PR1.LogInID, PR1.Score, PR1.[Date Taken] FROM Progress AS PR1 WHERE PR1.[Date Taken] IN ( SELECT TOP 3 PR2.[Date Taken] FROM Progress PR2 WHERE PR2.LoginID = PR1.LoginID ORDER BY PR2.[Date Taken] DESC ) ORDER BY LoginID, [Date Taken]</code>
Instructions :
La sous-requête dans la clauseIN utilise le mot-clé TOP et la clause ORDER BY pour récupérer les trois dernières dates pour chaque ID de connexion. La requête principale sélectionne ensuite les enregistrements correspondants dans la table Progress où la colonne [Date Taken] correspond à l'une des trois dernières dates pour chaque LoginID. La clause ORDER BY dans la requête principale garantit que les enregistrements sont triés par LoginID et [Date Taken] par ordre décroissant.
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!