2013-09-24 2 views
15

में एकाधिक WHEN शर्तों का संयोजन करना मैं नीचे के CASE क्लॉज का उपयोग करके परिणामों की 2 पंक्तियों को 1 में जोड़ना चाहता हूं। '< 26' केवल एक बार दिखाई देना चाहिए, और परिणाम संयुक्त होना चाहिए।MySQL - CASE

SELECT 
    CASE org.size 
     WHEN 0 THEN '<26' 
     WHEN 1 THEN '<26' 
     WHEN 2 THEN '26-50' 
     WHEN 3 THEN '51-100' 
     WHEN 4 THEN '101-250' 
     WHEN 5 THEN '251-500' 
     WHEN 6 THEN '501-1000' 
     WHEN 7 THEN '1001-5000' 
     ELSE '5000+' END 
     AS 'Size', 
     COUNT(DISTINCT org.id) AS '# of Companies' 
FROM org INNER JOIN usr ON usr.orgid = org.id 
    INNER JOIN usr_role ON usr.id = usr_role.usrid 
WHERE org.deleted = 0 AND usr.brnd = 1 AND usr_role.role = 1 
GROUP BY org.size; 
+0

आप सरल परिवर्तन 'के रूप में 'Size''' के रूप में करने के लिए' OrgSize'', और फिर OrgSize – MrSimpleMind

उत्तर

38

इस बारे में कैसे?

SELECT CASE 
      WHEN org.size IN (0, 1) THEN '<26' 
      WHEN org.size = 2 THEN '26-50' 
      WHEN org.size = 3 THEN '51-100' 
      WHEN org.size = 4 THEN '101-250' 
      WHEN org.size = 5 THEN '251-500' 
      WHEN org.size = 6 THEN '501-1000' 
      WHEN org.size = 7 THEN '1001-5000' 
     ELSE '5000+' END AS Size, .... 

समस्या यह है कि आपके पास दो अलग-अलग समूहों में <26 के कारण रिकॉर्ड org.size समूहीकरण कर रहे हैं, क्योंकि वे मूल रूप से 0 और 1 हो रहा है।

यह काम करेंगे,

GROUP BY CASE 
      WHEN org.size IN (0, 1) THEN '<26' 
      WHEN org.size = 2 THEN '26-50' 
      WHEN org.size = 3 THEN '51-100' 
      WHEN org.size = 4 THEN '101-250' 
      WHEN org.size = 5 THEN '251-500' 
      WHEN org.size = 6 THEN '501-1000' 
      WHEN org.size = 7 THEN '1001-5000' 
     ELSE '5000+' END 
+0

अच्छा विचार से समूह है, लेकिन परिणाम अभी भी 2 अलग-अलग पंक्तियों दिखा सकता है आकार के साथ दोनों '<26' – Ken

+0

क्या आप मुझे अपनी क्वेरी का परिणाम दिखा सकते हैं? –

+0

परिणाम सेट (9 आइटम) आकार ---------- # कंपनियों की <26 ---------- 17 <26 ---------- 87 26-50 -------- 15 51-100 -------- 13 101-250 ------- 12 251-500 ------- 8 501-1000 ------ 5 1001-5000 ----- 6 5000+ ---------- 5 – Ken

संबंधित मुद्दे