Maison >base de données >tutoriel mysql >Comment sélectionner la première ligne de chaque groupe dans MySQL ?

Comment sélectionner la première ligne de chaque groupe dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-04 19:54:02490parcourir

How to Select the First Row of Each Group in MySQL?

Comment sélectionner la première ligne de chaque groupe dans MySQL

Lorsque vous travaillez avec des données dans MySQL, il est souvent nécessaire de récupérer uniquement la première ligne de chaque groupe en fonction de critères précis. Bien que Linq-To-Sql offre un moyen pratique d'accomplir cela en C# à l'aide des méthodes GroupBy et Select, le code T-SQL résultant est incompatible avec MySQL.

MySQL offre un moyen simple et efficace de sélectionner le premier ligne pour chaque groupe à l’aide de sous-sélections. Voici comment procéder :

  1. Créez une sous-requête pour récupérer les clés primaires des groupes souhaités. Utilisez la clause GROUP BY pour regrouper les lignes puis utilisez le MIN( ) fonction d'agrégation pour récupérer la valeur minimale de la clé primaire pour chaque groupe.
SELECT MIN(id) AS group_id
FROM sometable
GROUP BY somecolumn
  1. Utilisez la sous-requête comme condition dans la requête principale pour sélectionner les données réelles. Filtrez les lignes de la requête principale à l'aide des ID de groupe obtenus à partir de la sous-requête.
SELECT somecolumn, anothercolumn 
FROM sometable 
WHERE id IN (
    SELECT group_id
    FROM (
        SELECT MIN(id) AS group_id
        FROM sometable
        GROUP BY somecolumn
    ) AS subquery
);

Cette requête récupérera efficacement la première ligne de chaque groupe en fonction de la colonne somecolumn, garantissant que les données sont organisé et facile à traiter.

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!

Déclaration:
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