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

MySQL-এ নির্দিষ্ট ভ্যালু অনুযায়ী COUNT করা


COUNT() ও IF() দিয়ে কন্ডিশনাল কাউন্ট

একটি কলামে নির্দিষ্ট ভ্যালু (যেমন ১ বা ২) কতবার আছে তা কাউন্ট করতে COUNT(IF(condition, 1, NULL)) প্যাটার্ন ব্যবহার করুন।

সিনট্যাক্স

SELECT 
  COUNT(*),
  COUNT(IF(FirstValue = 1, 1, NULL)) AS count_first_1,
  COUNT(IF(SecondValue = 2, 1, NULL)) AS count_second_2
FROM yourTable;

উদাহরণ

টেবিল তৈরি

mysql> create table countValueDemo (
    -> ShippingDatetime datetime,
    -> FirstValue int,
    -> SecondValue int
    -> );
Query OK, 0 rows affected (1.35 sec)

ডেটা ইনসার্ট (NULL সহ)

mysql> insert into countValueDemo values('2019-01-23', 1, 2);
Query OK, 1 row affected (0.24 sec)
mysql> insert into countValueDemo values('2017-02-21', NULL, 2);
Query OK, 1 row affected (0.13 sec)
mysql> insert into countValueDemo values('2016-04-12', 1, NULL);
Query OK, 1 row affected (0.19 sec)

সকল রেকর্ড

mysql> SELECT * FROM countValueDemo;

আউটপুট

+---------------------+------------+-------------+
| ShippingDatetime    | FirstValue | SecondValue |
+---------------------+------------+-------------+
| 2019-01-23 00:00:00 |          1 |           2 |
| 2017-02-21 00:00:00 |       NULL |           2 |
| 2016-04-12 00:00:00 |          1 |        NULL |
+---------------------+------------+-------------+

কন্ডিশনাল কাউন্ট

mysql> SELECT 
    -> ShippingDatetime,
    -> COUNT(*),
    -> COUNT(IF(FirstValue = 1, 1, NULL)),
    -> COUNT(IF(SecondValue = 2, 1, NULL))
    -> FROM countValueDemo;

আউটপুট

+---------------------+----------+----------------------------------------+-----------------------------------------+
| ShippingDatetime    | COUNT(*) | COUNT(IF(FirstValue = 1, 1, NULL))     | COUNT(IF(SecondValue = 2, 1, NULL))     |
+---------------------+----------+----------------------------------------+-----------------------------------------+
| 2019-01-23 00:00:00 |        3 |                                      2 |                                       2 |
+---------------------+----------+----------------------------------------+-----------------------------------------+

ব্যাখ্যা: মোট ৩ রো, FirstValue=1 আছে ২ রোয়ে, SecondValue=2 আছে ২ রোয়ে। COUNT() NULL মান গণনা করে না।

  1. MySQL-এ একাধিক টেবিল থেকে COUNT(*) একসাথে বের করা (DUAL টেবিল ব্যবহার করে)

  2. MySQL-এ DISTINCT, ORDER BY DESC, LIMIT OFFSET ব্যবহার করে Nth সর্বোচ্চ মান বের করুন

  3. MySQL IN() 절에 단일 값만 지정해도 되나요?

  4. MySQL-এ ভ্যালু ০ হলে অন্য কলাম থেকে ডেটা সিলেক্ট করা