extrayendo las últimas entradas con valores de verificación distintos de cero de una tabla SQL
Esta guía demuestra cómo recuperar de manera eficiente los registros más recientes para cada grupo, filtrándose para cantidades de verificación distintas de cero. Supongamos una tabla estructurada como esta:
group date cash checks
1 1/1/2013 0 0
2 1/1/2013 0 800
1 1/3/2013 0 700
3 1/1/2013 0 600
1 1/2/2013 0 400
3 1/5/2013 0 200
El siguiente enfoque SQL logra esto:
Primero, encontramos la fecha máxima para cada grupo donde el valor verificaciones
es mayor que cero:
SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;
esto produce:
group max_date
2 1/1/2013
1 1/3/2013
3 1/5/2013
A continuación, nos unimos a este resultado a la tabla original para recuperar los cheques correspondientes
cantidades:
SELECT t.group, t.date AS max_date, t.checks
FROM table t
INNER JOIN (
SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group
) AS a ON a.group = t.group AND a.max_date = t.date;
Esta consulta final produce la salida deseada:
group max_date checks
2 1/1/2013 800
1 1/3/2013 700
3 1/5/2013 200
importante: usando palabras reservadas (como date
) como los nombres de la columna se desaconsejan fuertemente. Puede conducir a errores de sintaxis SQL y dificultar su código. Considere nombres más descriptivos e inequívocos para sus columnas.
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