J'essaie de simplement obtenir 1 groupe qui a la date de connexion maximale. mon code p> résultat p> sortie souhaitée p> Flower
4 Réponses :
juste supprimer sortie p> ou utilisez Row_Number () p> sortie p> et t2.login_date <= sysdate code> condition
@Bff dbfiddle.uk/... Vérifiez ce lien sa fonction de travail
@Bff Les deux versions ont fonctionné dbfiddle.uk/...
S'il vous plaît essayez ceci. Et votre système Sysdate pourrait être de retour à la date actuelle.
select distinct top 1 group from table t where t.user_ID = 'Mulan' and t.Login_Date = (select max (t2.Login_Date) from table t2 where t.user_ID = t2.user_ID )
Top 1 ne fonctionnait pas pour moi, cela m'a donné une erreur - j'utilise Oracle
S'il vous plaît ajouter rownum = 1 dans la condition.
with s (user_ID, grp, Login_Date) as ( select 'Mulan', 'Flower' , to_date('4/4/2017' , 'mm/dd/yyyy') from dual union all select 'Mulan', 'Badminton', to_date('11/20/2015', 'mm/dd/yyyy') from dual union all select 'Mulan', 'Flower' , to_date('11/20/2015', 'mm/dd/yyyy') from dual) select max(grp) keep (dense_rank last order by login_date) as grp from s group by user_id; GRP --------- Flower
Merci, à vous travaille! Mais une question rapide, je voulais seulement retourner "GRP". Est-il possible de simplement sélectionner Max (GRP) Garder (DENSY_RANK Dernière commande par login_date) en tant que GRP? Est-ce que ça va me donner la bonne fleur?
@Bff dbfiddle.uk/... Vérifiez ce lien
Ceci devrait être une solution simple