Maison >base de données >tutoriel mysql >Comment classer les clients par âge et par sexe dans MySQL ?

Comment classer les clients par âge et par sexe dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-24 04:57:07193parcourir

How to Rank Customers by Age and Gender in MySQL?

Classement des clients dans MySQL : un guide pratique

MySQL n'offre pas de fonction de classement intégrée, ce qui nécessite des requêtes personnalisées pour classer les clients par âge et par sexe. Ce guide présente une solution utilisant une variable définie par l'utilisateur pour un classement efficace.

La requête :

Cette requête utilise une variable pour attribuer des classements :

<code class="language-sql">SELECT    first_name,
          age,
          gender,
          @curRank := @curRank + 1 AS rank
FROM      person p, (SELECT @curRank := 0) r
ORDER BY  age;</code>

La partie intelligente est la sous-requête (SELECT @curRank := 0) r. Cela initialise élégamment la variable de classement @curRank, éliminant ainsi le besoin d'une instruction SET distincte.

Exemple illustratif :

Considérons un exemple de person tableau :

<code class="language-sql">CREATE TABLE person (id int, first_name varchar(20), age int, gender char(1));

INSERT INTO person VALUES (1, 'Bob', 25, 'M');
INSERT INTO person VALUES (2, 'Jane', 20, 'F');
INSERT INTO person VALUES (3, 'Jack', 30, 'M');
INSERT INTO person VALUES (4, 'Bill', 32, 'M');
INSERT INTO person VALUES (5, 'Nick', 22, 'M');
INSERT INTO person VALUES (6, 'Kathy', 18, 'F');
INSERT INTO person VALUES (7, 'Steve', 36, 'M');
INSERT INTO person VALUES (8, 'Anne', 25, 'F');</code>

Résultats de la requête :

L'exécution de la requête génère les données client classées suivantes :

<code>+------------+------+--------+------+
| first_name | age  | gender | rank |
+------------+------+--------+------+
| Kathy      |   18 | F      |    1 |
| Jane       |   20 | F      |    2 |
| Nick       |   22 | M      |    3 |
| Bob        |   25 | M      |    4 |
| Anne       |   25 | F      |    5 |
| Jack       |   30 | M      |    6 |
| Bill       |   32 | M      |    7 |
| Steve      |   36 | M      |    8 |
+------------+------+--------+------+</code>

Cela montre clairement les clients classés par âge. Pour intégrer le sexe dans le classement, ajustez simplement la clause ORDER BY pour inclure le sexe comme critère de tri secondaire (par exemple, ORDER BY age, gender).

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