MySQL-এ একটি রোয়ে একাধিক কলামের নির্দিষ্ট মান (যেমন ১) কতবার এসেছে তা গণনা করতে SUM() ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স
SELECT
SUM(col1 + col2 + col3) AS total_ones,
SUM(col1 AND col2 AND col3) AS rows_with_all_ones
FROM yourTableName;
উদাহরণ
টেবিল তৈরি:
CREATE TABLE demo36 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
value1 INT,
value2 INT,
value3 INT
);
ডেটা ইনসার্ট:
INSERT INTO demo36(value1, value2, value3) VALUES (1,0,0), (1,0,1), (1,1,1), (0,1,0), (1,1,0);
টেবিলের ডেটা:
+----+--------+--------+--------+ | id | value1 | value2 | value3 | +----+--------+--------+--------+ | 1 | 1 | 0 | 0 | | 2 | 1 | 0 | 1 | | 3 | 1 | 1 | 1 | | 4 | 0 | 1 | 0 | | 5 | 1 | 1 | 0 | +----+--------+--------+--------+
কোয়েরি
SELECT
SUM(value1 + value2 + value3) AS Total_Number_Of_1,
SUM(value1 AND value2 AND value3) AS Total_Number_Of_Rows_With_1
FROM demo36;
আউটপুট
+-------------------+-----------------------------+ | Total_Number_Of_1 | Total_Number_Of_Rows_With_1 | +-------------------+-----------------------------+ | 9 | 1 | +-------------------+-----------------------------+
ব্যাখ্যা:
value1 + value2 + value3: প্রতিটি রোয়ে ১-এর যোগফল (০ বা ১)। সব রোয়ের যোগফল = ৯।value1 AND value2 AND value3: লজিক্যাল AND। তিনটি কলামই ১ হলে ১, অন্যথায় ০। শুধু ৩ নম্বর রোতে তিনটিই ১, তাই ফলাফল ১।
নোট: MySQL-এ TRUE = 1, FALSE = 0। তাই বুলিয়ান এক্সপ্রেশন সরাসরি SUM-এ ব্যবহার করা যায়।