Maison > base de données > tutoriel mysql > Comment récupérer les N premiers enregistrements pour chaque utilisateur dans Access SQL ?

Comment récupérer les N premiers enregistrements pour chaque utilisateur dans Access SQL ?

Linda Hamilton
Libérer: 2025-01-07 17:32:41
original
938 Les gens l'ont consulté

How to Retrieve the Top N Records for Each User in Access SQL?

Access SQL : extraction des N premiers enregistrements par utilisateur

Ce guide montre comment récupérer les trois enregistrements les plus récents pour chaque utilisateur dans une base de données Access à l'aide d'une seule requête SQL. Nous exploiterons les requêtes imbriquées pour cette tâche.

Structure de la base de données

Notre base de données se compose de deux tables :

  • Tableau utilisateur : LoginID, Forename, Surname, DOB, Guardian Forename, Guardian Surname, Telephone Number
  • Tableau de progression : ProgressID, LoginID, Score, Date Taken

La solution : les requêtes imbriquées

Une approche simple utilisant TOP N dans une seule requête n'est pas directement prise en charge dans Access SQL pour cette exigence spécifique (récupération des N premiers pour chaque groupe). Au lieu de cela, nous utiliserons une sous-requête pour y parvenir :

La requête interne identifie les trois premières Date Taken valeurs pour chaque LoginID :

SELECT TOP 3 PR2.[Date Taken]
FROM Progress AS PR2
WHERE PR2.LoginID = PR1.LoginID
ORDER BY PR2.[Date Taken] DESC
Copier après la connexion

Cet ensemble de résultats est ensuite utilisé dans la clause IN de la requête externe pour filtrer la table Progress :

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 AS PR2
    WHERE PR2.LoginID = PR1.LoginID
    ORDER BY PR2.[Date Taken] DESC
)
ORDER BY PR1.LoginID, PR1.[Date Taken] DESC;
Copier après la connexion

Cette requête finale renvoie efficacement les trois enregistrements les plus récents pour chaque LoginID, soigneusement classés par LoginID puis par Date Taken par ordre décroissant (le plus récent en premier). Cela évite les limitations liées à l'application directe de TOP N aux données groupées dans Access SQL.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal