คำนวณผลต่างและจัดเรียงด้วย ORDER BY
คำนวณ Value1 - Value2 ใน SELECT แล้วใช้ Alias ใน ORDER BY เรียงจากมากไปน้อย (DESC) หรือน้อยไปมาก (ASC)
ตัวอย่างสร้างตารางและข้อมูล
CREATE TABLE DemoTable (Value1 INT, Value2 INT); INSERT INTO DemoTable VALUES (10, 40), (50, 5), (51, 56), (52, 78), (90, 7);
ข้อมูลในตาราง
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | 40 | | 50 | 5 | | 51 | 56 | | 52 | 78 | | 90 | 7 | +--------+--------+
คำสั่งคำนวณผลต่างและเรียง DESC
SELECT (Value1 - Value2) AS Sub FROM DemoTable ORDER BY Sub DESC;
ผลลัพธ์
+------+ | Sub | +------+ | 83 | | 45 | | -5 | | -26 | | -30 | +------+
คำอธิบาย:
(Value1 - Value2) AS Subคำนวณผลต่าง ตั้งชื่อ Alias ว่า SubORDER BY Sub DESCเรียงตาม Alias จากมากไปน้อย (83, 45, -5, -26, -30)- สามารถใช้
ORDER BY (Value1 - Value2) DESCโดยไม่ต้อง Alias ก็ได้
เพิ่มคอลัมน์ต้นฉบับเพื่ออ้างอิง:
SELECT Value1, Value2, (Value1 - Value2) AS Difference FROM DemoTable ORDER BY Difference DESC;
ประยุกต์ใช้: คำนวณกำไร/ขาดทุน (Revenue - Cost), ความต่างคะแนน, ยอดคงเหลือ (Income - Expense) แล้วจัดอันดับ