¿Es posible GROUP BY
más de una columna en una consulta MySQL SELECT
? Por ejemplo:
GROUP BY fV.tier_id AND 'f.form_template_id'
GROUP BY col1, col2, col3
Sí, puedes agrupar por múltiples columnas. Pero no puedes get la respuesta correcta.
select * from table group by col1, col2
Dónde,
col1 obtuvo la primera preference para agruparse y col2 obtuvo la segunda preference. Porque el mysql da preference de izquierda a derecha.
group by fV.tier_id, f.form_template_id
Sí, pero ¿qué significa agrupar por más dos columnas? Bueno, es lo mismo que agrupar por cada par único por fila. El order en que se enumeran las columnas cambia la forma en que se orderan las filas.
En tu ejemplo, escribirías
GROUP BY fV.tier_id, f.form_template_id
Mientras tanto, el código
GROUP BY f.form_template_id, fV.tier_id
daría resultados similares, pero orderados de manera diferente.
Para usar un ejemplo simple, tenía un contador que necesitaba resumir direcciones IP únicas por página visitada en un sitio. Que es básicamente agrupar por nombre de página y luego por IP. Lo resolví con una combinación de DISTINCT y GROUP BY.
SELECT pagename, COUNT(DISTINCT ipaddress) AS visit_count FROM log_visitors GROUP BY pagename ORDER BY visit_count DESC;
GROUP BY CONCAT(col1, '_', col2)