Bạn cần có một bộ hàng chứa tất cả các giá trị có thể có về kỹ năng của bạn.
MySQL
thiếu cách thực hiện, vì vậy bạn sẽ phải tạo nó bằng cách nào đó.
Nếu bạn có một bộ kết quả như vậy, chỉ cần đưa ra:
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
Vì bạn đã đề cập rằng bạn có các kỹ năng của mình trong một bảng riêng, hãy sử dụng bảng đó:
SELECT skill, COUNT(*)
FROM skills s
JOIN users u
ON find_in_set(s.skill, u.sets)
GROUP BY
s.skill
Tuy nhiên, điều này sẽ không bao giờ khớp với lỗi chính tả, chúng sẽ được bỏ qua.