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

chọn hai hàng mới nhất cho mỗi người dùng để nhận được sự khác biệt của một cột (MySQL)

Bạn phải cải thiện điều này, nhưng về cơ bản đây là cách bạn làm điều này. bạn có thể sử dụng tự tham gia

SELECT uid, MAX(myvalue)-MIN(myvalue) AS diff FROM
    (SELECT a.* FROM tablename AS a
        LEFT JOIN tablename AS a2
            ON a.uid=a2.uid AND a.myvalue<=a2.myvalue
        GROUP BY uid,myvalue
        HAVING COUNT(*)<=2
    ) a
GROUP BY uid



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tối ưu hóa hiệu suất truy vấn trong MySQL

  2. cách cập nhật giá trị hoán đổi của hai hàng với một truy vấn

  3. MySQL rất chậm cho truy vấn bảng thay đổi

  4. Làm cách nào để chọn và / hoặc xóa tất cả trừ một hàng của mỗi tập hợp các bản sao trong bảng?

  5. Một cách khác để cải thiện Truy vấn SQL để tránh liên hợp?