SUM(condition) প্যাটার্ন দিয়ে বুলিয়ান গুননা
MySQL-এ বুলিয়ান এক্সপ্রেশন (যেমন isMarried = 1) TRUE হলে ১, FALSE হলে ০ রিটার্ন করে। SUM() দিয়ে এই ১/০ যোগ করলে TRUE/FALSE-এর সংখ্যা পাওয়া যায়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (isMarried TINYINT(1)); mysql> INSERT INTO DemoTable VALUES(0), (1), (1), (0), (1), (1), (0);
সব রেকর্ড
+-----------+ | isMarried | +-----------+ | 0 | | 1 | | 1 | | 0 | | 1 | | 1 | | 0 | +-----------+
কোয়েরি: ১ ও ০ আলাদা কলামে গুননা
mysql> SELECT
SUM(tbl.isMarried = 1) AS all_one_count,
SUM(tbl.isMarried = 0) AS all_zero_count,
SUM(tbl.isMarried IN(0,1)) AS all_zero_count_and_one_count
FROM DemoTable tbl;
+---------------+----------------+------------------------------+ | all_one_count | all_zero_count | all_zero_count_and_one_count | +---------------+----------------+------------------------------+ | 4 | 3 | 7 | +---------------+----------------+------------------------------+
ব্যাখ্যা
isMarried = 1— TRUE (1) হলে ১, FALSE হলে ০।SUM(...)— এই ১/০ যোগ করে TRUE-এর মোট সংখ্যা দেয়।IN(0,1)— ০ বা ১ যেকোনো হলে ১, মোট রো সংখ্যা পাওয়া যায়।
বিকল্প: COUNT(CASE...)
SELECT COUNT(CASE WHEN isMarried=1 THEN 1 END) AS ones, COUNT(CASE WHEN isMarried=0 THEN 1 END) AS zeros FROM DemoTable;