Extraction des dernières entrées avec des valeurs de vérification non nuls d'une table SQL
Ce guide montre comment récupérer efficacement les enregistrements les plus récents pour chaque groupe, filtrant les montants de contrôle non nul. Supposons une table structurée comme ceci:
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
L'approche SQL suivante y parvient:
Tout d'abord, nous trouvons la date maximale pour chaque groupe où la valeur vérifie
est supérieure à zéro:
SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;
cela donne:
group max_date
2 1/1/2013
1 1/3/2013
3 1/5/2013
Ensuite, nous rejoignons ce résultat à la table d'origine pour récupérer les montants correspondants
:
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;
Cette requête finale produit la sortie souhaitée:
group max_date checks
2 1/1/2013 800
1 1/3/2013 700
3 1/5/2013 200
Remarque importante: Utilisation des mots réservés (comme date
) comme les noms de colonnes est fortement découragé. Il peut entraîner des erreurs de syntaxe SQL et rendre votre code plus difficile à maintenir. Considérez les noms plus descriptifs et sans ambiguïté pour vos colonnes.
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