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

ใช้ ABS() เลือกแถวที่ค่าสัมบูรณ์ของความต่างมากกว่าค่ากำหนด

กรองข้อมูลด้วยค่าสัมบูรณ์

ใช้ ABS(col1 - col2) > threshold ใน WHERE clause

ตัวอย่าง: ตาราง studentmarks

mysql> SELECT * FROM studentmarks WHERE ABS(Hindi - English) > 10;
+--------+-------+---------+------+---------+-----------+
| Name   | Hindi | English | Math | Physics | Chemistry |
+--------+-------+---------+------+---------+-----------+
| Gaurav | 75    | 86      | 95   | 69      | 85        |
| Rahul  | 74    | 85      | 97   | 69      | 86        |
| Mohit  | 73    | 87      | 89   | 69      | 86        |
+--------+-------+---------+------+---------+-----------+

การอธิบาย

  • คำนวณ |Hindi - English| สำหรับทุกแถว
  • กรองเฉพาะที่ > 10
  • Gaurav: |75-86| = 11 > 10 ✓
  • Rahul: |74-85| = 11 > 10 ✓
  • Mohit: |73-87| = 14 > 10 ✓

ประยุกต์ใช้

  • หาข้อมูลที่เบี่ยงเบนมาก (Anomaly detection)
  • เปรียบเทียบค่าระหว่างช่วงเวลา/สาขา/เครื่องวัด
  • Quality control