Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql obtém diferença em vez de SOMA


Não há função agregada para diferença, mas como você sabe exatamente quais linhas usar, pode selecionar cada valor como sua própria subconsulta e, em seguida, subtrair as duas colunas uma da outra em uma única instrução de seleção.
SELECT a.op, b.op, a.op - b.op as diff
FROM (SELECT 10 as op) a
JOIN (SELECT 8 as op) b

Expresso de acordo com seu esquema, provavelmente ficaria assim:
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

Para usar essa abordagem regularmente em um aplicativo, no entanto, você desejará manipulá-la com base em IDs ou em outra coisa facilmente selecionável e significativa.

Parece que você quer outra coisa, no entanto. Talvez você esteja interessado na diferença entre max e min durante um período?
SELECT MAX(P_QTY) - MIN(P_QTY) as diff
FROM rankhistory
WHERE rh_date BETWEEN '1438556400' AND '1438642800'