Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เป็นไปได้ไหมที่จะคำนวณความสัมพันธ์ในการสืบค้น MySQL?


ใช่ เป็นไปได้ที่จะคำนวณความสัมพันธ์ในแบบสอบถาม เพื่อให้เข้าใจถึงความสัมพันธ์ในคิวรี คุณต้องสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้

mysql> สร้างตาราง correlationDemo -> ( -> ค่า float ไม่ null, -> value2 float ไม่ null -> ); เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังต่อไปนี้เพื่อแทรกระเบียนในตาราง

mysql> แทรกลงในค่า correlationDemo (1,10); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า correlationDemo (2,4); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรก ลงในค่า correlationDemo(3,5);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า correlationDemo(6,17);Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select

แบบสอบถามมีดังนี้

mysql> เลือก *จาก correlationDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-------+---------+| ค่า | value2 |+-------+---------+| 1 | 10 || 2 | 4 || 3 | 5 || 6 | 17 |+-------+-------+4 แถวในชุด (0.03 วินาที)

นี่คือความสัมพันธ์แบบง่ายในแบบสอบถาม

mysql> เลือก @firstValue:=avg(value), -> @secondValue:=avg(value2), -> @division:=(stddev_samp(value) * stddev_samp(value2)) จาก correlationDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-----------------------------------+-------------------------- -------------------------------------------------------- --------------+| @firstValue:=avg(value) | @secondValue:=avg(value2) | @division:=(stddev_samp(value) *stddev_samp(value2)) |+--------------------------------------------------------- --------------------------------------------------------------- --------------------+| 3 | 9 | 12.8490685617215 |+-----------------------------+--------------------------- ----------------------------------------------------- ------------+1 แถวในชุด (0.00 วินาที)

นี่คือการคำนวณของแบบสอบถามความสัมพันธ์ข้างต้น

mysql> เลือกผลรวม ( ( value - @firstValue ) * (value2 - @secondValue) ) / ((count(value) -1) *@division) from -> correlationDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อน>+--------------------------------------------- ----------------------------------------------------+| sum( ( value - @firstValue ) * (value2 - @secondValue) ) / ((count(value) -1) * @division) |+----------------- -------------------------------------------------- ------------------------------------+| 0.7008850777290727 |+---------------------------------------------------------- ----------------------------------------------------+1 แถวในชุด (0.00 วินาที)