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

tìm tối đa tập hợp các cột cho nhiều hàng trong truy vấn mysql

SELECT
  *
FROM
(
  SELECT
    ROW_NUMBER() OVER (PARTITION BY Code ORDER BY Year DESC, Month DESC) AS row_number,
    *
  FROM
    myTable
)
  AS orderedTable
WHERE
  row_number = 1


CHỈNH SỬA Và bây giờ là phiên bản HOẠT ĐỘNG trong MySQL ...

SELECT
  *
FROM
  myTable
WHERE
  Year * 12 + Month = (SELECT MAX(Year * 12 + Month) FROM myTable AS lookup WHERE Code = myTable.Code)

CHỈNH SỬA Sau khi truy cập vào SQL, có thể xác nhận điều này nhanh hơn ...

WHERE
    Year  = (SELECT MAX(Year)  FROM myTable AS lookup WHERE Code = myTable.Code)
AND Month = (SELECT MAX(Month) FROM myTable AS lookup WHERE Code = myTable.Code AND Year = myTable.Year)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay vì kích hoạt trong mysql

  2. Django:sqlite cho nhà phát triển, mysql cho sản phẩm?

  3. SQL:Chọn các khóa không tồn tại trong một bảng

  4. Chèn hàng mới với dữ liệu được tính toán từ các hàng khác

  5. Kích hoạt trình kích hoạt sau khi cập nhật các cột cụ thể trong MySQL