Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mysql nhận chênh lệch thay vì SUM

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'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI:Lỗi 1005:Không thể tạo bảng (errno:121)

  2. Chèn thời gian vào cơ sở dữ liệu mysql trong java

  3. Không thể đặt low_case_table_names trong MySQL 8.x trên Windows 10

  4. Hướng dẫn thiết kế cơ sở dữ liệu cho hệ thống đặt hàng nhà hàng trong MySQL

  5. Gửi ArrayList từ android sang php MySQL