Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql получава разлика вместо SUM

Няма обобщена функция за разлика, но тъй като знаете точно кои редове да използвате, можете да изберете всяка стойност като собствена подзаявка, след което да извадите двете колони една от друга в един оператор за избор.

SELECT a.op, b.op, a.op - b.op as diff
FROM (SELECT 10 as op) a
JOIN (SELECT 8 as op) b

Изразено в съответствие с вашата схема, вероятно ще изглежда така:

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

За да използвате този подход редовно в приложение, обаче, ще искате да го обработвате въз основа на идентификатори или нещо друго, лесно избираемо и смислено.

Звучи обаче, че искаш нещо друго. Може би се интересувате от разликата между максимума и минимума през даден период от време?

SELECT MAX(P_QTY) - MIN(P_QTY) as diff
FROM rankhistory
WHERE rh_date BETWEEN '1438556400' AND '1438642800'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel Timestamp се актуализира без изрично обаждане за това

  2. Mysql криптиране / съхраняване на чувствителни данни,

  3. Актуализирайте MySql таблицата от CSV с помощта на PHP

  4. Преобразуване на дата в име и година на месеца

  5. WooCommerce:Намиране на продуктите в базата данни