मुझे हाल ही में एक साक्षात्कार में इस प्रश्न से पूछा गया था। मैंने इसे mySQL में करने की कोशिश की, और उसी परिणाम (अंतिम परिणाम) प्राप्त हुए। सभी ने उस विशेष तालिका में पंक्तियों की संख्या दी। क्या कोई भी उनके बीच प्रमुख अंतर समझा सकता है।गिनती (0), गिनती (1) के बीच क्या अंतर है .. और mySQL/SQL में गिनती (*)?
उत्तर
कुछ भी नहीं है वास्तव में, जब तक आप एक तालिका में एक क्षेत्र या लगातार मान के स्थान पर parantheses भीतर एक अभिव्यक्ति या * निर्दिष्ट
मुझे आप एक विस्तृत जवाब देता हूँ। गणना आपको दिए गए क्षेत्र की गैर-शून्य रिकॉर्ड संख्या प्रदान करेगी। आप नाम के एक
select 1 from A
select 0 from A
select * from A
सब वापस आ जाएगी अभिलेखों का एक ही नंबर एक टेबल है कहते हैं, कि तालिका ए में पंक्तियों की संख्या अभी भी उत्पादन अलग है। यदि तालिका में 3 रिकॉर्ड हैं। एक्स और वाई फ़ील्ड नाम के रूप में साथ
select 1 from A will give you
1
1
1
select 0 from A will give you
0
0
0
select * from A will give you (assume two columns X and Y is in the table)
X Y
-- --
value1 value1
value2 (null)
value3 (null)
तो, इन तीनों प्रश्नों ही नंबर लौट आते हैं। जब तक आप
select count(Y) from A
का उपयोग के बाद से वहाँ केवल एक गैर शून्य मान आप, आउटपुट के रूप में 1 मिल जाएगा
COUNT(*)
पंक्तियों की संख्या की गणना होती है, जबकि COUNT(expression)
अभिव्यक्ति और COUNT(column)
में गैर-शून्य मान में गिना जाएगा कॉलम में सभी गैर-शून्य मानों की गणना करें।
चूंकि 0 और 1 दोनों गैर-शून्य मान हैं, COUNT(0)=COUNT(1)
और वे दोनों COUNT(*)
पंक्तियों की संख्या के बराबर होंगे। यह एक अलग अवधारणा है, लेकिन परिणाम वही होगा।
धन्यवाद fthiella। @brhneser मेरे जैसे शुरुआती के लिए एक बहुत निराश जवाब है। – Dhruv
हां आप सही हैं लेकिन मुझे लगता है कि 'गिनती (*)' को 'गिनती (1)' से अधिक समय लगेगा, है ना? यदि हां तो 'गिनती (1)' का उपयोग प्रदर्शन के तरीके के लिए बेहतर होगा। :) – Yubaraj
@ युबराज गिनती (1) कम से कम कुछ डीबीएमएस पर गिनती (*) की तुलना में बेहतर प्रदर्शन करती थी, लेकिन आजकल ऑप्टिमाइज़र गिनती (*) के बराबर गिनती (*) बनाने के लिए सक्षम है (1) – fthiella
अब - उन्हें सभी समान रूप से प्रदर्शन करना चाहिए।
हालांकि, बीते हुए दिनों में, COUNT (1) (या जो भी लगातार आपके द्वारा चुने गए) कभी कभी COUNT (*) से अधिक की सिफारिश की थी क्योंकि गरीब क्वेरी अनुकूलन कोड डाटाबेस क्षेत्र डेटा के सभी पुनः प्राप्त होगा गिनती चलाने से पहले । COUNT (1) इसलिए तेज़ था, लेकिन अब इससे कोई फर्क नहीं पड़ता।
- 1. के बीच अंतर: डी [गिनती] और डी [गिनती]
- 2. गिनती (*) और गिनती (कॉलम_नाम), diff क्या है?
- 3. क्या गिनती (*)% 2 = 1
- 4. पायथन सीप्रोफाइल में, कॉल गिनती और आदिम कॉल गिनती के बीच क्या अंतर है?
- 5. एसक्यूएल क्वेरी, 0 गिनती
- 6. mySQL जॉइन 0 गिनती
- 7. कॉलम गिनती पंक्ति 1
- 8. CAAnimation -1 दोहराना गिनती?
- 9. गिनती
- 10. गिनती
- 11. गिनती (*)?
- 12. यह रिकॉर्ड गिनती 1 क्या है?
- 13. गिनती (अनुक्रमित कॉलम) गिनती (*) से तेज है?
- 14. WMPLib: player.mediaCollection.getAll()। गिनती हमेशा 0
- 15. LINQ और गिनती
- 16. गिनती और फिर पाइथन
- 17. डेमॉन थ्रेड, थ्रेड गिनती, और कुल थ्रेड गिनती
- 18. गिनती टकराव
- 19. एसक्यूएल विशिष्ट और गिनती
- 20. SQL क्वेरी, गिनती और
- 21. अधिसूचना गिनती
- 22. एसक्यूएल गिनती
- 23. सी # में "गिनती ++" वापसी क्या करती है?
- 24. गिनती घटनाओं
- 25. गिनती तंत्र
- 26. पॉइंट गिनती
- 27. समूह और गिनती आइटम
- 28. एसक्यूएल गिनती (*) और विशिष्ट
- 29. उलटी गिनती
- 30. संदर्भ गिनती
एक कॉलम में 'शून्य' मान है। फिर कॉलम पर एक गिनती करें। देखें कि गणना कैसे भिन्न होती है। '0' या '1' का चयन सिर्फ प्रत्येक पंक्ति के लिए स्थिर का चयन कर रहा है, कोई' शून्य 'शामिल नहीं होगा। – Glenn
संभावित डुप्लिकेट [एसक्यूएल में, गिनती (कॉलम) और गिनती (\ *) के बीच क्या अंतर है?] (Http://stackoverflow.com/questions/59294/in-sql-whats-the-difference-between-countcolumn -और-गिनती) – newtover