Neexistuje žádná agregační funkce pro rozdíl, ale protože přesně víte, které řádky použít, můžete každou hodnotu vybrat jako svůj vlastní poddotaz a poté od sebe odečíst dva sloupce v jediném příkazu select.
SELECT a.op, b.op, a.op - b.op as diff
FROM (SELECT 10 as op) a
JOIN (SELECT 8 as op) b
Vyjádřeno v souladu s vaším schématem by to pravděpodobně vypadalo takto:
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
Chcete-li však tento přístup v aplikaci používat pravidelně, budete jej chtít ovládat na základě ID nebo něčeho jiného, co lze snadno a smysluplně vybrat.
Zdá se však, že chcete něco jiného. Možná vás zajímá rozdíl mezi maximem a minimem během časového období?
SELECT MAX(P_QTY) - MIN(P_QTY) as diff
FROM rankhistory
WHERE rh_date BETWEEN '1438556400' AND '1438642800'