Maison > base de données > tutoriel mysql > Comment récupérer la valeur maximale et les colonnes associées dans les sous-requêtes SQL ?

Comment récupérer la valeur maximale et les colonnes associées dans les sous-requêtes SQL ?

Barbara Streisand
Libérer: 2024-12-29 12:51:15
original
456 Les gens l'ont consulté

How to Retrieve Maximum Value and Associated Columns in SQL Subqueries?

Sous-requêtes de valeur maximale en SQL

Dans cette requête, vous cherchez à récupérer les valeurs correspondantes pour les colonnes en fonction de la valeur maximale d'une autre colonne . Bien que votre approche originale utilise une instruction GROUP BY, elle récupère de manière fiable uniquement l'ID vidéo maximum, mais pas les données associées des autres colonnes.

Pour résoudre ce problème, envisagez d'utiliser une sous-requête qui identifie les ID vidéo maximum distincts par catégorie. . La requête modifiée ci-dessous adhère à cette approche :

SELECT
    *
FROM
    videos
WHERE
    video_id IN
    (
        SELECT
            DISTINCT
            MAX(video_id)
        FROM
            videos
        GROUP BY
            video_category
    ) 
ORDER BY
    video_category ASC
Copier après la connexion

Dans cette requête, une sous-requête est utilisée pour isoler l'ensemble des identifiants vidéo maximum. Le tableau est ensuite filtré à l'aide de cet ensemble pour récupérer toutes les colonnes pour les ID vidéo maximum correspondants. En exploitant l'opérateur IN et en concaténant les résultats, cette requête récupère efficacement les valeurs souhaitées.

Vous pouvez également utiliser une opération de jointure pour obtenir le même résultat, comme indiqué ci-dessous :

SELECT
   s.video_id
   ,s.video_category
   ,s.video_url
   ,s.video_date
   ,s.video_title
   ,s.short_description
FROM videos s
   JOIN (SELECT MAX(video_id) AS id FROM videos GROUP BY video_category) max
      ON s.video_id = max.id
Copier après la connexion

Cette approche utilise une jointure pour faire correspondre les lignes d'ID vidéo maximum avec les lignes correspondantes de la table des vidéos, récupérant l'ensemble complet de colonnes pour chaque ID vidéo maximum. Les deux solutions résolvent efficacement le problème en capturant les valeurs associées au nombre maximal d'identifiants vidéo dans chaque catégorie.

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