Không có hàm tổng hợp cho sự khác biệt, nhưng vì bạn biết chính xác hàng nào sẽ sử dụng, bạn có thể chọn từng giá trị làm truy vấn con của riêng nó, sau đó trừ hai cột cho nhau trong một câu lệnh chọn duy nhất.
SELECT a.op, b.op, a.op - b.op as diff
FROM (SELECT 10 as op) a
JOIN (SELECT 8 as op) b
Được thể hiện theo lược đồ của bạn, nó có thể trông giống như sau:
SELECT a.op, b.op, a.op - b.op as diff
FROM (SELECT P_QTY as op FROM rankhistory WHERE P_QTY = 160) a
JOIN (SELECT P_QTY as op FROM rankhistory WHERE P_QTY = 108) b
Tuy nhiên, để sử dụng phương pháp này thường xuyên trong một ứng dụng, bạn sẽ muốn xử lý nó dựa trên ID hoặc thứ gì đó khác dễ dàng lựa chọn và có ý nghĩa.
Tuy nhiên, có vẻ như bạn muốn một thứ gì đó khác. Có lẽ bạn quan tâm đến sự khác biệt giữa tối đa và tối thiểu trong một phạm vi ngày?
SELECT MAX(P_QTY) - MIN(P_QTY) as diff
FROM rankhistory
WHERE rh_date BETWEEN '1438556400' AND '1438642800'