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

MySQL কোয়েরিতে করিলেশন (Correlation) হিসাব করা

MySQL-এ সরাসরি কোয়েরি লিখে দুটি কলামের মধ্যে পার্সন করিলেশন কোয়ফিশিয়েন্ট (Pearson correlation coefficient) হিসাব করা যায়।

উদাহরণ

টেবিল তৈরি:

mysql> CREATE TABLE correlationDemo (
    -> value FLOAT NOT NULL,
    -> value2 FLOAT NOT NULL
    -> );

ডেটা ইনসার্ট:

mysql> INSERT INTO correlationDemo VALUES(1,10), (2,4), (3,5), (6,17);

সকল রেকর্ড:

mysql> SELECT * FROM correlationDemo;
+-------+--------+
| value | value2 |
+-------+--------+
|     1 |     10 |
|     2 |      4 |
|     3 |      5 |
|     6 |     17 |
+-------+--------+

করিলেশন হিসাব (স্টেপ বাই স্টেপ):

mysql> SELECT @firstValue:=AVG(value),
    -> @secondValue:=AVG(value2),
    -> @division:=(STDDEV_SAMP(value) * STDDEV_SAMP(value2))
    -> FROM correlationDemo;
+-------------------------+---------------------------+-------------------------------------------------------+
| @firstValue:=AVG(value) | @secondValue:=AVG(value2) | @division:=(STDDEV_SAMP(value)*STDDEV_SAMP(value2))   |
+-------------------------+---------------------------+-------------------------------------------------------+
| 3                       | 9                         | 12.84090685617215                                     |
+-------------------------+---------------------------+-------------------------------------------------------+

ফাইনাল করিলেশন কোয়ফিশিয়েন্ট:

mysql> SELECT SUM((value - @firstValue) * (value2 - @secondValue)) / ((COUNT(value) - 1) * @division)
    -> FROM correlationDemo;
+--------------------------------------------------------------------------------------------+
| SUM((value - @firstValue) * (value2 - @secondValue)) / ((COUNT(value) - 1) * @division)    |
+--------------------------------------------------------------------------------------------+
| 0.7008850777290727                                                                         |
+--------------------------------------------------------------------------------------------+

ব্যাখ্যা: ফলাফল ০.৭০ - মাঝপথ ধনাত্মক করিলেশন। MySQL-এ বিল্ট-ইন CORR() ফাংশন নেই (MariaDB-এ আছে)। বড় ডেটাসেটের জন্য অ্যাপ্লিকেশন লেভেলে করিলেশন করা ভালো।

  1. MySQL-এ DELETE স্টেটমেন্ট ব্যবহার করে নির্দিষ্ট সারি মুছে ফেলা

  2. MySQL-এ একই কোয়েরিতে INSERT এবং UPDATE (ON DUPLICATE KEY UPDATE)

  3. MySQL-এ একক SELECT কোয়েরিতে দুটি টেবিল থেকে ডেটা ফেচ করা

  4. MySQL কোয়েরি এন্টার করা (Entering MySQL Queries)