การคำนวณความต่างระหว่างสองคอลัมน์และแสดงเป็นคอลัมน์ใหม่ใน MySQL
ใช้การลบธรรมดา col1 - col2 ใน SELECT Clause พร้อม Alias
ตัวอย่างการใช้งาน
สร้างตารางมีค่าต่ำและค่าสูง:
mysql> create table DemoTable (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
LowValue int,
HighValue int
);
mysql> insert into DemoTable(LowValue,HighValue) values(100,200);
mysql> insert into DemoTable(LowValue,HighValue) values(300,700);
mysql> insert into DemoTable(LowValue,HighValue) values(1000,2000);
ข้อมูล:
+----+----------+-----------+ | Id | LowValue | HighValue | +----+----------+-----------+ | 1 | 100 | 200 | | 2 | 300 | 700 | | 3 | 1000 | 2000 | +----+----------+-----------+
คิวรีคำนวณความต่าง:
mysql> select tbl.Id, tbl.LowValue, tbl.HighValue, HighValue - LowValue AS DifferenceBetweenTwoColumns from DemoTable tbl;
+----+----------+-----------+-----------------------------+ | Id | LowValue | HighValue | DifferenceBetweenTwoColumns | +----+----------+-----------+-----------------------------+ | 1 | 100 | 200 | 100 | | 2 | 300 | 700 | 400 | | 3 | 1000 | 2000 | 1000 | +----+----------+-----------+-----------------------------+
การประยุกต์:
- ค่าสัมบูรณ์:
ABS(HighValue - LowValue) - เปอร์เซ็นต์:
((HighValue - LowValue) / LowValue) * 100 - ใช้ใน
WHERE:WHERE HighValue - LowValue > 500 - สร้าง Generated Column (MySQL 5.7+):
Difference INT GENERATED ALWAYS AS (HighValue - LowValue) STORED