Is het mogelijk om meer dan één kolom te GROUP BY
in 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)