Maison > base de données > tutoriel mysql > Comment générer des numéros de ligne par groupe dans MySQL ?

Comment générer des numéros de ligne par groupe dans MySQL ?

Linda Hamilton
Libérer: 2024-11-24 00:20:10
original
650 Les gens l'ont consulté

How to Generate Row Numbers per Group in MySQL?

Numéro de ligne par groupe dans MySQL

Dans les systèmes de gestion de bases de données, comprendre la numérotation des lignes au sein des groupes est crucial pour l'analyse et la manipulation des données. Dans MySQL, la génération de numéros de ligne en fonction de critères spécifiques, tels que l'ID et le type d'équipage, peut être réalisée grâce à diverses techniques.

Solution

Pour générer un numéro de ligne pour pour chaque combinaison unique d'ID et de type d'équipage, vous pouvez utiliser la requête MySQL suivante :

SELECT    id,
          crew_id,
          amount,
          type,
         ( 
            CASE type 
            WHEN @curType 
            THEN @curRow := @curRow + 1 
            ELSE @curRow := 1 AND @curType := type END
          ) + 1 AS rank
FROM      Table1 p,
          (SELECT @curRow := 0, @curType := '') r
ORDER BY  crew_id,type asc;
Copier après la connexion

Dans ce requête :

  • Table1 représente la table d'origine contenant les données.
  • @curRow et @curType sont des variables définies par l'utilisateur initialisées respectivement à 0 et à une chaîne vide.
  • L'instruction CASE gère la numérotation des lignes en fonction du type. Si le type correspond à @curType, le numéro de ligne (rang) est incrémenté de un. Sinon, il réinitialise @curRow à 1 et met à jour @curType avec le type actuel.
  • Le 1 dans l'instruction CASE garantit que le numéro de ligne commence à 1.

Cette requête renvoie la sortie souhaitée avec les numéros de ligne ajoutés en tant que colonne supplémentaire nommée « rang ».

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