sql - how to add a column with count values in mysql table? -


मेरे नाम के साथ एक mysql तालिका है, a और b , और फिर क्लस्टर

  + -------- + ----------- + ------ ---- + --------- + | नाम | एक | बी | क्लस्टर | + -------- + ----------- + ---------- + --------- + | जॉनी | 225630096 | 447 | 3 | | जॉनी | 225630118 | 491 | 4 | | जॉनी | 225630206 | 667 | 5 | | जॉनी | 225630480 | 1215 | 6 | | जॉनी | 225630677 | 160 9 | 7 | | जॉनी | 225631010 | 2275 | 8 | | मैनी | 154247076 | 6235 | 1 | | मैनी | 154247079 | 6241 | 1 | | मैनी | 154247083 | 624 9 | 1 | | मैनी | 154247084 | 6251 | 1 | | मैनी | 154247087 | 6257 | 1 | | मैनी | 1542470 9 0 6263 | 1 | | मैनी | 1542470 9 1 | 6265 | 1 | | मैनी | 154247093 | 626 9 | 1 | | मैनी | 154247097 | 6277 | 1 | | मैनी | 1542470 9 8 6279 | 1 | | मैनी | 154247099 | 6281 | 1 | | मैनी | 154247100 | 6283 | 1 | | मैनी | 154247555 | 7193 | 2 | | मैनी | 154247629 | 7341 | 3 | | मैनी | 154247630 | 7343 | 3 | | मैनी | 154247633 | 734 9 | 3 | | मैनी | 154247634 | 7351 | 3 | | डॉगेस | 146340582 | 6811 | 1 |  

मैं नाम और क्लस्टर कॉलम के आधार पर एक गिनती स्तंभ जोड़ना चाहता था। उदाहरण के लिए, आउटपुट में प्रत्येक नाम के भीतर क्लस्टर की संख्या शामिल होगी उदाहरण के लिए, आउटपुट कुछ ऐसा दिखाई देगा:

  + -------- + ----------- + -------- - + --------- + --------- + | नाम | एक | बी | क्लस्टर | गिनती | + -------- + ----------- + ---------- + --------- + ------- - + | जॉनी | 225630096 | 447 | 3 | 1 | | जॉनी | 225630118 | 491 | 4 | 2 | | जॉनी | 225630206 | 667 | 5 | 3 | | जॉनी | 225630480 | 1215 | 6 | 4 | | जॉनी | 225630677 | 160 9 | 7 | 5 | | जॉनी | 225631010 | 2275 | 8 | 6 | | मैनी | 154247076 | 6235 | 1 | 1 | | मैनी | 154247079 | 6241 | 1 | 1 | | मैनी | 154247083 | 624 9 | 1 | 1 | | मैनी | 154247084 | 6251 | 1 | 1 | | मैनी | 154247087 | 6257 | 1 | 1 | | मैनी | 1542470 9 0 6263 | 1 | 1 | | मैनी | 1542470 9 1 | 6265 | 1 | 1 | | मैनी | 154247093 | 626 9 | 1 | 1 |   

मैंने COUNT फ़ंक्शन का उपयोग करने की कोशिश की है लेकिन, इसके बजाय क्लस्टर की संख्या की गणना करने के लिए लगता है।

आप ऐसा एक subquery या चर के साथ कर सकते हैं वेरिएबल्स आमतौर पर अधिक कुशल होते हैं:

  चुनें टी। *, @ Rn: = if (@name = name और @cluster = cluster, @rn, if (@name = name, @rn) + 1, 1)) `गिनती` के रूप में, @name: = name, @cluster: = तालिका में क्रॉस जॉइन से क्लस्टर (@ rn: = 0, @name: = '', @cluster: = -1) चुनें नाम, क्लस्टर द्वारा आदेश;  

यदि आप इसे एक तालिका में रखना चाहते हैं (एक क्वेरी से परिणाम के बजाय) तालिका बनाओ या डालें

subquery दृष्टिकोण है:

  चुनें टी। *, (तालिका का चयन करें गिनती (अलग क्लस्टर) टी 2 से जहां t2.name = t.name और t2.cluster & lt ; = टी। क्लस्टर) तालिका टी से `गणना 'के रूप में;  

तालिका (नाम, क्लस्टर) पर एक सूचकांक के साथ प्रदर्शन ठीक होना चाहिए। ध्यान दें कि इस संस्करण को एक दृश्य में उपयोग किया जा सकता है।


Comments

Popular posts from this blog

scala - Play Framework - how to bind form to a session field -

c++ - Why does Visual Studio Release build break on non-executing code line -

javascript - parsing json not working -