Maison > base de données > tutoriel mysql > Que signifie « GROUPE PAR 1 » en SQL ?

Que signifie « GROUPE PAR 1 » en SQL ?

Mary-Kate Olsen
Libérer: 2024-12-27 17:36:11
original
631 Les gens l'ont consulté

What Does

Dévoiler le mystère de « GROUP BY 1 » : un guide du regroupement SQL

Lorsque vous travaillez avec des données, il est courant de rencontrer des situations où vous devez regrouper les lignes en fonction de certaines colonnes. La clause SQL GROUP BY fournit un moyen puissant d'y parvenir. Cependant, que se passe-t-il lorsque la clause GROUP BY contient une instruction énigmatique telle que "GROUP BY 1" ?

Le déroutant "GROUP BY 1"

Lors de la réception d'une requête SQL avec une clause GROUP BY composée de « GROUP BY 1 », vous pouvez à juste titre supposer qu'il s'agit d'une faute de frappe. Après tout, aucune colonne ne reçoit explicitement l’alias « 1 ». Alors, que signifie réellement cette déclaration apparemment énigmatique ?

Résoudre le mystère

Contrairement à la croyance populaire, « GROUP BY 1 » n’est pas une faute de frappe. Il sert un objectif spécifique :

Regroupement par position :

Le nombre dans la clause GROUP BY fait référence à la position de la colonne dans l'ensemble de résultats. Dans ce cas, « 1 » représente la première colonne. Cela signifie que la requête regroupera les lignes en fonction des valeurs de la première colonne, quel que soit son nom ou son alias.

Cette technique est particulièrement utile lorsque vous avez plusieurs colonnes dans votre ensemble de résultats et que vous souhaitez les regrouper en fonction sur un poste précis. Par exemple, considérons la requête suivante :

SELECT product_name, sales_figure
FROM sales_data
GROUP BY 1;
Copier après la connexion

Dans cette requête, l'instruction "GROUP BY 1" demande à la base de données de regrouper les lignes par la première colonne, qui est supposée être la colonne "product_name". .

Ordre par position :

La syntaxe "GROUP BY 1" peut également être utilisée dans la clause ORDER BY pour spécifier l'ordre des résultats en fonction de la position de la colonne. Par exemple :

SELECT product_name, sales_figure
FROM sales_data
GROUP BY 1
ORDER BY 2 DESC;
Copier après la connexion

Cette requête regroupera les lignes par « nom_produit » (première colonne), puis classera les résultats par ordre décroissant en fonction de « chiffre_ventes » (deuxième colonne).

Conclusion :

Bien que « GROUP BY 1 » puisse paraître inhabituel à première vue, c'est un moyen efficace de obtenir un regroupement et un classement précis des données en fonction de la position des colonnes. En comprenant son objectif, vous pouvez exploiter cette syntaxe unique pour améliorer la précision et l'efficacité de vos requêtes SQL.

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