question:
Supposons que le tableau de la base de données contient des informations de connexion de l'utilisateur, comment récupérer la dernière date de connexion pour chaque utilisateur? Considérant qu'il peut y avoir des dates de connexion en double.
Solution:
Il existe deux façons courantes de résoudre ce problème:
Méthode 1: Sous-requête en utilisant la jointure intérieure
Cette méthode utilise une sous-requête pour identifier la dernière date de connexion pour chaque utilisateur et est ensuite utilisée pour filtrer la table principale:
select t.username, t.date, t.value
from MyTable t
inner join (
select username, max(date) as MaxDate
from MyTable
group by username
) tm on t.username = tm.username and t.date = tm.MaxDate
Méthode 2: Fonction de fenêtre
]Pour les bases de données qui prennent en charge les fonctions de fenêtre, une méthode plus efficace peut être utilisée:
select x.username, x.date, x.value
from (
select username, date, value,
row_number() over (partition by username order by date desc) as _rn
from MyTable
) x
where x._rn = 1
Cette méthode utilise le tri des numéros de ligne sur les données de partition, où la dernière date de chaque utilisateur se voit attribuer un niveau 1.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3