Maison > base de données > tutoriel mysql > Comment sélectionner efficacement les lignes de date maximales avec des valeurs de contrôle non nulles dans SQL ?

Comment sélectionner efficacement les lignes de date maximales avec des valeurs de contrôle non nulles dans SQL ?

Susan Sarandon
Libérer: 2025-01-08 13:36:42
original
202 Les gens l'ont consulté

How to Efficiently Select Max Date Rows with Non-Zero Check Values in SQL?

Extraction de lignes de date maximales avec des montants de chèque non nuls en SQL

Cet exemple montre comment sélectionner des groupes uniques avec les dates les plus récentes et des valeurs de contrôle non nulles à partir d'un ensemble de données contenant des groupes, des dates et des valeurs monétaires (espèces et chèques).

Une première tentative utilisant cette requête s'est avérée insuffisante :

<code class="language-sql">SELECT group, MAX(date), checks
FROM table
WHERE checks > 0
GROUP BY group
ORDER BY group DESC</code>
Copier après la connexion

Cette requête a renvoyé toutes les dates et les valeurs de contrôle pour chaque groupe, pas seulement les données de la ligne avec la date maximale.

La solution implique une approche en deux étapes :

Tout d'abord, nous identifions la date maximale pour chaque groupe avec des valeurs de contrôle non nulles :

<code class="language-sql">SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group</code>
Copier après la connexion

Ensuite, nous joignons cet ensemble de résultats à la table d'origine pour récupérer le checks correspondant (et d'autres colonnes pertinentes) pour ces lignes de date maximale :

<code class="language-sql">SELECT t.group, a.max_date, t.checks
FROM table t
INNER JOIN (
    SELECT group, MAX(date) AS max_date
    FROM table
    WHERE checks > 0
    GROUP BY group
) a ON a.group = t.group AND a.max_date = t.date;</code>
Copier après la connexion

Cette jointure interne garantit que seules les lignes correspondant à la fois à la date maximale et aux critères de vérification non nuls sont incluses dans la sortie finale.

Bonne pratique : L'utilisation de mots descriptifs et non réservés pour les noms de colonnes (par exemple, group_id au lieu de group) améliore la lisibilité du code et réduit le risque d'erreurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal