কম্পিউটার টিউটোরিয়াল

MySQL-এ COUNT() ফাংশন দিয়ে NOT NULL ভ্যালুর উপস্থিতি গড়ে বের করা

MySQL-এ COUNT(column_name) ফাংশন শুধু NULL নন-ভ্যালু (NOT NULL values) গড়ে। এটি NULL ভ্যালুগুলো বাদ দেয়। এই বৈশিষ্ট্যটি ব্যবহার করে নির্দিষ্ট কলামে কতটি নন-নাল ভ্যালু আছে তা জানা যায়।

টেবিল তৈরি এবং ডেটা ইনসার্ট (NULL সহ)

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> NumberOfQuestion INT,
    -> NumberOfSolution INT
    -> );
mysql> INSERT INTO DemoTable(NumberOfQuestion, NumberOfSolution) VALUES(20, 10);
mysql> INSERT INTO DemoTable(NumberOfQuestion, NumberOfSolution) VALUES(20, 2);
mysql> INSERT INTO DemoTable(NumberOfQuestion, NumberOfSolution) VALUES(20, NULL);
mysql> INSERT INTO DemoTable(NumberOfQuestion, NumberOfSolution) VALUES(20, NULL);
mysql> INSERT INTO DemoTable(NumberOfQuestion, NumberOfSolution) VALUES(30, 19);
mysql> INSERT INTO DemoTable(NumberOfQuestion, NumberOfSolution) VALUES(30, 1);

সব রেকর্ড দেখুন (NULL দেখাচ্ছে)

mysql> SELECT * FROM DemoTable;
+----+------------------+------------------+
| Id | NumberOfQuestion | NumberOfSolution |
+----+------------------+------------------+
|  1 |               20 |               10 |
|  2 |               20 |                2 |
|  3 |               20 |             NULL |
|  4 |               20 |             NULL |
|  5 |               30 |               19 |
|  6 |               30 |                1 |
+----+------------------+------------------+

NumberOfQuestion গ্রুপ বাই করে NumberOfSolution-এর NOT NULL কাউন্ট

mysql> SELECT NumberOfQuestion, COUNT(NumberOfSolution) AS NumberOfRows 
    -> FROM DemoTable 
    -> GROUP BY NumberOfQuestion;

ফলাফল

+------------------+--------------+
| NumberOfQuestion | NumberOfRows |
+------------------+--------------+
|               20 |            2 |
|               30 |            2 |
+------------------+--------------+

ব্যাখ্যা:

  • NumberOfQuestion = 20: ৪টি রো আছে, কিন্তু NumberOfSolution শুধু ২টি রোতে NOT NULL (১০ এবং ২)। ২টি NULL বাদ পড়েছে।
  • NumberOfQuestion = 30: ২টি রো, দুটোই NOT NULL (১৯ এবং ১)।

COUNT(*) বনাম COUNT(column)

ফাংশনগড়েNULL হ্যান্ডলিং
COUNT(*)সকল রোNULL ও গড়ে
COUNT(column)সpecific কলামের নন-নাল ভ্যালুNULL বাদ দেয়
COUNT(DISTINCT column)ইউনিক নন-নাল ভ্যালুNULL বাদ দেয়

উদাহরণ: COUNT(*) vs COUNT(NumberOfSolution)

SELECT 
    NumberOfQuestion,
    COUNT(*) AS total_rows,
    COUNT(NumberOfSolution) AS non_null_solutions
FROM DemoTable
GROUP BY NumberOfQuestion;
+------------------+------------+--------------------+
| NumberOfQuestion | total_rows | non_null_solutions |
+------------------+------------+--------------------+
|               20 |          4 |                  2 |
|               30 |          2 |                  2 |
+------------------+------------+--------------------+
  1. MySQL-এ IS NOT NULL দিয়ে কলামে NULL বা NOT NULL চেক করা

  2. MySQL-এ ডিফল্ট মান NULL সেট করা

  3. MySQL-এ IF() ফাংশন দিয়ে NOT NULL মান માટે ১ এবং NULL জন্য ০ দেখানো

  4. MySQL-এ ALTER TABLE MODIFY দিয়ে বিদ্যমান কলামে NOT NULL অ্যাট্রিবিউট সেট করা