Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql dapatkan perbedaan alih-alih SUM

Tidak ada fungsi agregat untuk perbedaan, tetapi karena Anda tahu persis baris mana yang digunakan, Anda dapat memilih setiap nilai sebagai subkuerinya sendiri, lalu kurangi dua kolom satu sama lain dalam satu pernyataan pemilihan.

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

Dinyatakan sesuai dengan skema Anda, mungkin akan terlihat seperti ini:

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

Namun, untuk menggunakan pendekatan ini secara teratur dalam suatu aplikasi, Anda harus menanganinya berdasarkan ID atau sesuatu yang lain yang mudah dipilih dan bermakna.

Namun, sepertinya Anda menginginkan sesuatu yang lain. Mungkin Anda tertarik dengan perbedaan antara maks dan min selama rentang tanggal?

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. MySQL – Tunggu Beberapa Detik Menggunakan SELECT SLEEP()

  2. Kondisi JIKA dalam skrip mysql

  3. Rentang kendala kolom MySQL numerik:bagaimana?

  4. host 'localhost' tidak diizinkan untuk terhubung ke server MySQL ini (#1130)

  5. Pendekatan mana yang lebih cepat untuk mendapatkan semua POI dari MySQL/MariaDB dengan PHP/Laravel