pregunta:
Suponga que la tabla de la base de datos contiene información de inicio de sesión del usuario, ¿cómo recuperamos la última fecha de inicio de sesión para cada usuario? Teniendo en cuenta que puede haber fechas de inicio de sesión duplicadas.
Solución:
Hay dos formas comunes de resolver este problema:
Método 1: Subquery usando unión interna
Este método usa una subconsulta para identificar la última fecha de inicio de sesión para cada usuario y luego se usa para filtrar la tabla principal:
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étodo 2: función de ventana
]Para bases de datos que admiten funciones de ventana, se puede usar un método más eficiente:
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
Este método utiliza la clasificación de números de fila en datos de partición, donde se le asigna a la última fecha de cada usuario un nivel 1.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3