উত্তর:
এর মানে হল এই COUNT(any_non_null_column)হিসাবে একই দেব COUNT(*)কারণ কোন শূন্য মান পার্থক্য সৃষ্টি হয় অবশ্যই।
সাধারণত, COUNT(*)আরও ভাল হওয়া উচিত কারণ যে কোনও সূচক ব্যবহার করা যেতে পারে কারণ সূচী COUNT(column_or_expression)বা SARGable নাও হতে পারে
থেকে ANSI-92 ( "জন্য চেহারা Scalar expressions 125")
কেস:
ক) যদি COUNT (*) নির্দিষ্ট করা থাকে তবে ফলাফলটি টি এর কার্ডিনালিটি is
খ) অন্যথায়, টিএক্সকে একক-কলামের সারণী হতে দিন যা টির প্রতিটি সারিতে <মান প্রকাশ> প্রয়োগ এবং নাল মানগুলি মুছে ফেলার ফলাফল। যদি এক বা একাধিক নাল মানগুলি মুছে ফেলা হয়, তবে একটি সমাপ্তির শর্ত উত্থাপিত হয়: সতর্কতা-নাল মান সেট ফাংশনে মুছে ফেলা হয়।
একই বিধিগুলি কমপক্ষে এসকিউএল সার্ভার এবং সিবাসে প্রযোজ্য
দ্রষ্টব্য: COUNT (1) হ'ল COUNT (*) এর সমান কারণ 1 হ'ল একটি নন-অযোগ্য এক্সপ্রেশন।
COUNT(*), COUNT(<constant>)এবং COUNT(<column name>)এবং যে সব তিনটি প্রিফিক্স যেতে পারে ALLবা DISTINCT(নির্ধারিত লিঙ্ক ALLবাদ দেওয়া হলে)। আমি কেবল ভাবছি আপনি যেখানে বলছেন সেখানে কোন অভিব্যক্তিটি ব্যবহার করা যেতে পারে _or_expression?
COUNT(1)অকেজো উদাহরণ হিসাবে @neday যখন, এটি একই রকম COUNT(*)। COUNT(CASE WHEN a>b THEN 1 END)উদাহরণ হিসাবে যে সারি গণনা যেখানে a> খ।
ওরাকলের যে কোনও সাম্প্রতিক (অর্থাত্ 8.x + ) সংস্করণে তারা একই কাজ করে । অন্য কথায় পার্থক্যটি কেবল শব্দার্থক:
select count(*) from any_table
আপনি যা করার চেষ্টা করছেন তা সহজেই পঠনযোগ্য এবং স্পষ্ট is
select count(any_non_null_column) from any_table
কারণ পড়া কঠিন
any_non_null_columnসত্যিই হিসাবে প্রয়োগ করা হয়েছে কিনা তা নিয়ে ভাবতে হবেnot nullসংক্ষেপে, ব্যবহারcount(*)
একটি সাম্প্রতিক সংস্করণ আছে প্রকৃতপক্ষে COUNT (*) এবং COUNT (মধ্যে কোন পার্থক্য নেই কোনো না নাল কলাম ), জোর দিয়ে নাল না :-) প্রসঙ্গক্রমে একটি ব্লগ পোস্টের সাথে যে বিষয় ঢেকে: COUNT (কর্নেল) গণনা চেয়েও বড় (*)?
বইয়ে Oracle8i সার্টিফাইড পেশাগত DBA সার্টিফিকেশন পরীক্ষার গাইড (ISBN-0072130601) , পৃষ্ঠা 78 COUNT টি (1) দ্রুত যে আসলে চালানো হবে বলে COUNT টি (*) কারণ নির্দিষ্ট প্রক্রিয়া প্রতিটি কলামের এর nullability জন্য তথ্য অভিধান চেক করার জন্য খেলার মধ্যে বলা হয় (অথবা অন্তত অ nullability প্রথম কলাম) যখন ব্যবহার COUNT টি (*) । COUNT (1) এই প্রক্রিয়াগুলিকে বাইপাস করে।
মাইএসকিউএল টিবিএলনামে 'নির্বাচন COUNT (1) এর জন্য প্রতারণা করে;' সারণী গণনার জন্য সারণী শিরোনাম পড়ে মাইআইএসএএম টেবিলগুলিতে। ইনোডিবি প্রতিবার গণনা করে।
অ্যানোস্টিক উপায়ে COUNT (*) COUNT (*) এর চেয়ে দ্রুত চলবে কিনা তা পরীক্ষা করতে কেবল নিম্নলিখিতটি চালান এবং চলমান সময়টি নিজের জন্য বিচার করুন:
SELECT COUNT(1) FROM tblname WHERE 1 = 1;
SELECT COUNT(*) FROM tblname WHERE 1 = 1;
SELECT COUNT(column-name) FROM tblname WHERE 1 = 1;
স্টোরেজ ইঞ্জিন বা আরডিবিএমএস নির্বিশেষে এটি COUNT ফাংশনটিকে একই স্তরের প্লেয়িং ফিল্ডে পরিচালিত করে।
count(*)ব্যবহার করবে।