2011-10-16 9 views
1

J'ai une base de données d'accès que je suis en interaction avec l'utilisation de JET avec la structure suivante:Obtenir les dernières 5 entrées uniques

ID UsersID 
1 1 
2 2 
3 2 
4 3 
5 1 

Ce que je suis en train de faire est d'obtenir les dernières entrées uniques. par exemple:

ID UsersID 
5 1 
4 3 
3 2 

Cependant, j'ai du mal à mélanger les groupes et les commandes. J'ai essayé

SELECT DISTINCT [UsersID] FROM [Table] ORDER BY [ID] DESC 
SELECT [UsersID] FROM [Table] GROUP BY [UsersID] ORDER BY [ID] DESC 

Mais, pas de chance. Note: si je laisse le ORDER BY [ID] DESC de n'importe quelle question, cela fonctionne, mais évidemment la commande n'est pas comme prévu.

Répondre

2

Vous pouvez obtenir la plus grande valeur d'ID pour chaque ID utilisateur avec une requête GROUP BY simple.

SELECT UserID, Max(ID) AS MaxOfID 
FROM [Table] 
GROUP BY UserID; 

Cependant, je ne suis pas sûr de comprendre l'ordre et les 5 dernières exigences. Si le dernier 5 signifie que les 5 plus grandes valeurs d'ID de la requête ci-dessus, essayez alors de cette façon ...

SELECT TOP 5 UserID, Max(ID) AS MaxOfID 
FROM [Table] 
GROUP BY UserID 
ORDER BY 2 DESC; 

« Table » est pas le meilleur nom pour une table. J'espère que votre situation réelle utilise un nom de table différent. :-)

+0

Non, "Table" n'est pas le vrai nom. Intéressant, si je fais 'ORDER BY [ID] DESC' j'obtiens une erreur, mais si je fais' ORDER BY 1 DESC' tout est génial – steveo225

+0

Vous ne savez pas de quelle question vous parlez. S'il s'agit d'un GROUP BY qui inclut Max (ID), vous pouvez utiliser Max (ID) dans ORDER BY au lieu d'utiliser la position ordinale de l'expression de champ. – HansUp

+0

Ce que je voulais dire, c'est que je ne peux pas combiner "GROUP BY" et "ORBER BY" et utiliser n'importe quel champ de la table sans erreur, mais je peux utiliser la position ordinale comme vous l'avez suggéré. – steveo225

0
SELECT TOP 5 ID, UserID FROM 
table 
where UserID in (SELECT DISTINCT UserID from table ORDER BY ID DESC) 
Questions connexes