Computer >> Máy Tính >  >> Lập trình >> MySQL

Có thể tính toán mối tương quan trong một truy vấn MySQL không?

Có, có thể tính toán mối tương quan trong một truy vấn. Để hiểu mối tương quan trong một truy vấn, trước tiên bạn cần tạo một bảng. Truy vấn để tạo bảng như sau

 mysql> tạo bảng tương quanDemo -> (-> giá trị float không null, -> giá trị2 float không null ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,62 giây) 

Chèn một số bản ghi trong bảng với sự trợ giúp của lệnh insert. Truy vấn như sau để chèn bản ghi trong bảng

 mysql> chèn vào giá trị tương quan vào giá trị tương quan (3,5); truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị tương quan 

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select.

Truy vấn như sau

 mysql> select * from sameDemo; 

Sau đây là kết quả

 + ------- + -------- + | giá trị | value2 | + ------- + -------- + | 1 | 10 || 2 | 4 || 3 | 5 || 6 | 17 | + ------- + -------- + 4 hàng trong bộ (0,03 giây) 

Bây giờ đây là mối tương quan đơn giản trong một truy vấn

 mysql> select @firstValue:=avg (value), -> @secondValue:=avg (value2), -> @division:=(stddev_samp (value) * stddev_samp (value2)) from sameDemo; 

Sau đây là kết quả

 + ------------------------- + -------------------- ------- + ------------------------------------------ ------------- + | @firstValue:=avg (value) | @secondValue:=avg (value2) | @division:=(stddev_samp (value) * stddev_samp (value2)) | + ------------------------- + ------- -------------------- + ----------------------------- -------------------------- + | 3 | 9 | 12.84090685617215 | + -------------------------- + --------------------- ------ + ------------------------------------------- ------------ + 1 hàng trong bộ (0,00 giây) 

Đây là tính toán của truy vấn tương quan ở trên

 mysql> select sum ((value - @firstValue) * (value2 - @secondValue)) / ((count (value) -1) * @ chia) từ -> tương quanDemo; 

Sau đây là kết quả

 + ---------------------------------------------- ---------------------------------------------- + | sum ((value - @firstValue) * (value2 - @secondValue)) / ((count (value) -1) * @division) | + ------------------ -------------------------------------------------- ------------------------ + | 0,7008850777290727 | + -------------------------------------------------- --------------------------------------------- + 1 hàng trong bộ (0,00 giây)