Maison >base de données >tutoriel mysql >Comment classer les clients par âge et par sexe dans 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!