288 votes

Est-il possible de GROUPER PAR plusieurs colonnes avec MySQL ?

Est-il possible de GROUP BY plus d'une colonne dans une base de données MySQL SELECT demande ? Par exemple :

GROUP BY fV.tier_id AND 'f.form_template_id'

374voto

Joe Philllips Points 13616
GROUP BY col1, col2, col3

183voto

php Points 435

Oui, vous pouvez effectuer des regroupements sur plusieurs colonnes. Par exemple,

SELECT * FROM table
GROUP BY col1, col2

Les résultats seront d'abord regroupés par col1, puis par col2. Dans MySQL, la préférence des colonnes va de gauche à droite.

30voto

brandonCabi Points 6

Oui, mais que signifie le regroupement par plus de deux colonnes ? C'est la même chose que de regrouper chaque paire unique par ligne. L'ordre dans lequel vous énumérez les colonnes modifie la façon dont les lignes sont triées.

Dans votre exemple, vous écririez

GROUP BY fV.tier_id, f.form_template_id

Entre-temps, le code

GROUP BY f.form_template_id, fV.tier_id

donnerait des résultats similaires, mais triés différemment.

21voto

Trevor Points 4098
group by fV.tier_id, f.form_template_id

21voto

Daniel Points 16

Pour prendre un exemple simple, j'avais un compteur qui devait résumer les adresses IP uniques par page visitée sur un site. Il s'agit en fait d'un regroupement par nom de page, puis par adresse IP. J'ai résolu le problème en combinant DISTINCT et GROUP BY.

SELECT pagename, COUNT(DISTINCT ipaddress) AS visit_count FROM log_visitors GROUP BY pagename ORDER BY visit_count DESC;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X