sql >> Base de Datos >  >> RDS >> Mysql

Agrupación de MySQL con un campo separado por comas

Debe tener un conjunto de filas que contenga todos los valores posibles de sus habilidades.

MySQL carece de una forma de hacerlo, por lo que tendrá que generarlo de alguna manera.

Si tiene un conjunto de resultados de este tipo, simplemente emita:

SELECT  skill, COUNT(*)
FROM    (
        SELECT 'Install' AS skill
        UNION ALL
        SELECT 'Configure' AS skill
        UNION ALL
        SELECT 'Setup' AS skill
        UNION ALL
        SELECT 'Blah' AS skill
        ) s
JOIN    users u
ON      find_in_set(s.skill, u.sets)
GROUP BY
        s.skill

Ya que mencionaste que tienes tus habilidades en una tabla separada, usa esa tabla:

SELECT  skill, COUNT(*)
FROM    skills s
JOIN    users u
ON      find_in_set(s.skill, u.sets)
GROUP BY
        s.skill

Esto, sin embargo, nunca coincidirá con los errores tipográficos, simplemente se omitirán.