কম্পিউটার

কিভাবে MySQL COALESCE() ফাংশন MySQL SUM() ফাংশনের সাথে আউটপুট কাস্টমাইজ করতে ব্যবহার করা যেতে পারে?


যখন MySQL SUM() ফাংশন একটি কলাম পেয়েছে, যার কোনো মান নেই, একটি আর্গুমেন্ট, তখন এটি আউটপুট হিসাবে 0 এর পরিবর্তে NULL প্রদান করবে। কিন্তু যদি আমরা এই আউটপুটটিকে আউটপুট হিসাবে 0 দেখানোর জন্য কাস্টমাইজ করতে চাই তবে আমরা MySQL COALESCE() ফাংশন ব্যবহার করতে পারি যা দুটি আর্গুমেন্ট গ্রহণ করে এবং প্রথম আর্গুমেন্টটি NULL হলে দ্বিতীয় আর্গুমেন্ট ফেরত দেয়, অন্যথায়, এটি প্রথম আর্গুমেন্টটি ফেরত দেয়। এটি ব্যাখ্যা করার জন্য, আমরা 'টেন্ডার' টেবিলের উদাহরণ নিচ্ছি যেখানে নিম্নলিখিত ডেটা রয়েছে −

mysql> Select * from tender;

+----+---------------+--------------+
| Sr | CompanyName   | Tender_value |
+----+---------------+--------------+
| 1  | Abc Corp.     | 250.369003   |
| 2  | Khaitan Corp. | 265.588989   |
| 3  | Singla group. | 220.255997   |
| 4  | Hero group.   | 221.253006   |
| 5  | Honda group   | NULL         |
+----+---------------+--------------+

5 rows in set (0.00 sec)

MySQL SUM() ফাংশনটি NULL প্রদান করে যখন আমরা 'Honda Group'-এর দ্বারা উদ্ধৃত মোট টেন্ডার মান খুঁজে বের করার চেষ্টা করি কারণ এটির কলামে কোনো মান নেই।

mysql> Select SUM(Tender_value) From Tender Where CompanyName = 'Honda Group';

+-------------------+
| SUM(Tender_value) |
+-------------------+
|              NULL |
+-------------------+

1 row in set (0.00 sec)

কিন্তু, ধরুন আমরা যদি এই আউটপুটটিকে NULL থেকে 0 তে কাস্টমাইজ করতে চাই তাহলে আমরা 'Honda Group'-এর দ্বারা উদ্ধৃত মোট টেন্ডার মান খুঁজে পেতে SUM() এর সাথে COALESCE ফাংশন ব্যবহার করতে পারি।

mysql> Select COALESCE(SUM(Tender_value),0) From Tender Where CompanyName = 'Honda Group';

+-------------------------------+
| COALESCE(SUM(Tender_value),0) |
+-------------------------------+
|                      0.000000 |
+-------------------------------+

1 row in set (0.00 sec)

এখন, MySQL SUM() ফাংশন 0 প্রদান করে যখন আমরা 'মোহন' দ্বারা টাইপ করা মোট পৃষ্ঠার সংখ্যা খুঁজে পেতে SUM() এর সাথে COALESCE ফাংশন ব্যবহার করি, যে নামটি 'নাম' কলামে নেই -

mysql> SELECT COALESCE(SUM(daily_typing_pages),0) FROM employee_tbl WHERE Name = ‘Mohan’;

+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
|                       0 |
+-------------------------+

1 row in set (0.00 sec)

উপরের ফলাফলের সেটগুলি থেকে, এটা স্পষ্ট যে MySQL SUM() ফাংশনটি NULL প্রদান করবে যদি কলামের ডেটা প্রকার নির্বিশেষে কোনো মান না থাকে।


  1. HAVING clause সহ আমরা কিভাবে MySQL SUM() ফাংশন ব্যবহার করতে পারি?

  2. কিভাবে MySQL REPLACE() ফাংশন WHERE ক্লজের সাথে ব্যবহার করা যেতে পারে?

  3. MySQL IN() ফাংশন ব্যবহার করে কলামের নামের সাথে তুলনা করার ভিত্তিতে আমি কীভাবে আউটপুট পেতে পারি?

  4. কিভাবে মাইএসকিউএল দিয়ে মাস অনুসারে টেবিলের মানগুলি যোগ করবেন?