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

Trợ giúp nhanh chóng bằng cách sử dụng RANK trên nhiều biến

row_number sẽ đủ cho nhu cầu của bạn.

Lưu ý:Tôi giả sử cột Ngày của bạn là kiểu dữ liệu Ngày hoặc DateTime thực sự và không phải là một chuỗi ở dạng bạn đã hiển thị. Nếu giả định đó là sai, sẽ cần một số thao tác chuỗi bổ sung để chuyển Ngày thành định dạng có thể sắp xếp.

;with cteRowNumber as (
    select Date, ProductID, Year, Price, 
           row_number() over (partition by ProductID, Year order by Date desc) as RowNum
        from YourTable
)
select Date, ProductID, Year, Price
    from cteRowNumber
    where RowNum = 1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PI () Ví dụ trong SQL Server

  2. Không có snap-in nào được đăng ký cho Windows PowerShell phiên bản 2

  3. Làm cách nào để kiểm tra các bản sao trước khi chèn vào bảng khi chèn bằng cách chọn

  4. Cách Chèn kết quả của một thủ tục đã lưu trữ vào một bảng tạm thời trong SQL Server

  5. Kiểm tra xem một ngày nhất định có phù hợp với một phạm vi ngày không