Is het mogelijk om meerdere kolommen te GROUPEREN met MySQL?

Is het mogelijk om meer dan één kolom te GROUP BYin een MySQL SELECT-query? Bijvoorbeeld:

GROUP BY fV.tier_id AND 'f.form_template_id'

Antwoord 1, autoriteit 100%

GROUP BY col1, col2, col3

Antwoord 2, autoriteit 46%

Ja, u kunt groeperen op meerdere kolommen. Bijvoorbeeld,

SELECT * FROM table
GROUP BY col1, col2

De resultaten worden eerst gegroepeerd op col1 en daarna op col2. In MySQL gaat de kolomvoorkeur van links naar rechts.


Antwoord 3, autoriteit 9%

Ja, maar wat betekent groeperen met meer twee kolommen? Nou, het is hetzelfde als groeperen op elk uniek paar per rij. De volgorde waarin u de kolommen weergeeft, verandert de manier waarop de rijen worden gesorteerd.

In jouw voorbeeld zou je schrijven

GROUP BY fV.tier_id, f.form_template_id

Intussen is de code

GROUP BY f.form_template_id, fV.tier_id

zou vergelijkbare resultaten geven, maar anders gesorteerd.


Antwoord 4, autoriteit 6%

group by fV.tier_id, f.form_template_id

Antwoord 5, autoriteit 5%

Om een eenvoudig voorbeeld te gebruiken, ik had een teller die unieke IP-adressen per bezochte pagina op een site moest samenvatten. Dat is in feite groeperen op paginanaam en vervolgens op IP. Ik heb het opgelost met een combinatie van DISTINCT en GROUP BY.

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

Antwoord 6, Autoriteit 3%

Als u de voorkeur geeft (ik moet deze) groep met twee kolommen tegelijkertijd toepassen, ik zag dit punt gewoon:

SELECT CONCAT (col1, '_', col2) AS Group1 ... GROUP BY Group1

Antwoord 7

GROUP BY CONCAT(col1, '_', col2)

Other episodes