extraindo as últimas entradas com valores de verificação diferentes de zero de uma tabela SQL
Este guia demonstra como recuperar com eficiência os registros mais recentes para cada grupo, filtrando para valores de verificação diferentes de zero. Vamos assumir uma tabela estruturada 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
A seguinte abordagem SQL alcança isso:
Primeiro, encontramos a data máxima para cada grupo em que o valor verifica
é maior que zero:
SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;
isso rende:
group max_date
2 1/1/2013
1 1/3/2013
3 1/5/2013
Em seguida, juntamos este resultado à tabela original para recuperar os valores correspondentes
valores:
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 produz a saída desejada:
group max_date checks
2 1/1/2013 800
1 1/3/2013 700
3 1/5/2013 200
Nota importante: usando palavras reservadas (como date
) como nomes de colunas são fortemente desencorajados. Isso pode levar a erros de sintaxe do SQL e dificultar o seu código. Considere nomes mais descritivos e inequívocos para suas colunas.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3