দুটি কলামের মান কোথাও অদলবদল হলে (যেমন Name1='John', Name2='Adam' এবং Name1='Adam', Name2='John') সেগুলো একই জোড়া হিসেবে গণনা করতে GREATEST() এবং LEAST() ফাংশন ব্যবহার করে_NORMALIZE করা হয়, তারপর GROUP BY দিয়ে কাউন্ট করা হয়।
উদাহরণ
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable (
-> Name1 VARCHAR(20),
-> Name2 VARCHAR(20)
-> );
২. ডেটা ইনসার্ট করুন (অদলবদল জোড়া)
mysql> INSERT INTO DemoTable VALUES('John', 'Adam');
mysql> INSERT INTO DemoTable VALUES('Chris', 'David');
mysql> INSERT INTO DemoTable VALUES('Robert', 'Mike');
mysql> INSERT INTO DemoTable VALUES('David', 'Chris'); -- অদলবদল
mysql> INSERT INTO DemoTable VALUES('Mike', 'Robert'); -- অদলবদল
৩. সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট:
+--------+--------+
| Name1 | Name2 |
+--------+--------+
| John | Adam |
| Chris | David |
| Robert | Mike |
| David | Chris |
| Mike | Robert |
+--------+--------+
৪. জোড়া নরমালাইজ করে আবার্তন গণনা করুন
mysql> SELECT GREATEST(Name1, Name2), LEAST(Name1, Name2), COUNT(*) AS Occurrences
-> FROM DemoTable
-> GROUP BY GREATEST(Name1, Name2), LEAST(Name1, Name2);
৫. ফলাফল
+-----------------------+--------------------+-------------+
| greatest(Name1,Name2) | least(Name1,Name2) | Occurrences |
+-----------------------+--------------------+-------------+
| John | Adam | 1 |
| David | Chris | 2 |
| Robert | Mike | 2 |
+-----------------------+--------------------+-------------+
ব্যাখ্যা: GREATEST বড় মান (বর্ণানুক্রমিক), LEAST ছোট মান রিটার্ন করে। ফলে ('Chris','David') এবং ('David','Chris') উভয়ই ('David','Chris') হয়ে যায়, যা গ্রুপিংয়ে একই জোড়া হিসেবে গণনা হয়।