मेरे पास 2 टेबल, उपयोगकर्ता और निम्न हैं। तालिका के बाद स्थिति नामक कॉलम होता है। मैं यह जानना चाहता हूं कि प्रत्येक उपयोगकर्ता ने स्थिति के आधार पर कितने समूह का अनुसरण किया है।mysql group_concat अंदर गिनती के साथ?
नीचे दी गई क्वेरी प्रत्येक उपयोगकर्ता के लिए प्रत्येक स्थिति प्रकार के लिए एक रिकॉर्ड देता है।
SELECT users.name as user_name, f.status, count(f.id)
FROM users
JOIN application_follows f ON f.user_id = users.id
GROUP BY users.id, f.status
ORDER BY users.id
रिटर्न कुछ की तरह:
user_name status count
mike new 10
mike old 5
tom new 8
tom old 9
लेकिन मैं और अधिक अनुकूल की तरह कुछ करना चाहते हैं:
user_name status_count
mike new,10|old,5
tom new,8|old,9
group_concat का उपयोग करने और गिनती लेकिन फ्लॉप काम करने की कोशिश की। कोई सुराग?
SELECT users.name, GROUP_CONCAT(CONCAT(f.status, ',', f.cnt) SEPARATOR '|')
FROM users
JOIN
(SELECT user_id, status, count(id) AS cnt
FROM application_follows
GROUP BY user_id, status) f
ON f.user_id = users.id
GROUP BY users.id
हे मैन धन्यवाद, यह चाल है ... –