MySQL không có hàm tương quan tích hợp, nhưng có thể tính toán bằng công thức thống kê sử dụng AVG(), STDDEV_SAMP() và biến người dùng.
Tạo bảng:
mysql> CREATE TABLE correlationDemo (value FLOAT NOT NULL, value2 FLOAT NOT NULL);
Chèn dữ liệu:
mysql> INSERT INTO correlationDemo VALUES(1,10), (2,4), (3,5), (6,17);
Kết quả trung bình và độ lệch chuẩn:
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 | +-------------------------+---------------------------+-------------------------------------------------------+
Tính hệ số tương quan Pearson:
mysql> SELECT SUM((value - @firstValue) * (value2 - @secondValue)) / ((COUNT(value) - 1) * @division) FROM correlationDemo;
Kết quả:
+--------------------------------------------------------------------------------------------+ | sum((value - @firstValue) * (value2 - secondValue)) / ((count(value) -1) * @division) | +--------------------------------------------------------------------------------------------+ | 0.7008850777290727 | +--------------------------------------------------------------------------------------------+
Công thức: r = Σ((x - x̄)(y - ȳ)) / ((n-1) * σx * σy)