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 মান গণনা করে না।