"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment récupérer la dernière date de connexion pour chaque utilisateur de SQL?

Comment récupérer la dernière date de connexion pour chaque utilisateur de SQL?

Publié le 2025-02-06
Parcourir:958

How to Retrieve the Latest Login Date for Each User in SQL?

requête SQL pour la dernière date d'enregistrement de connexion pour chaque utilisateur

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.

Dernier tutoriel Plus>

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