Không có chức năng xếp hạng trong MySQL. Cách gần nhất bạn có thể làm là sử dụng một biến:
SELECT t.*,
@rownum := @rownum + 1 AS rank
FROM YOUR_TABLE t,
(SELECT @rownum := 0) r
vậy điều đó sẽ hoạt động như thế nào trong trường hợp của tôi? Tôi cần hai biến, một cho mỗi col1 và col2? Col2 sẽ cần đặt lại bằng cách nào đó khi col1 thay đổi ..?
Đúng. Nếu đó là Oracle, bạn có thể sử dụng hàm LEAD để đạt giá trị cao nhất ở giá trị tiếp theo. Rất may, Quassnoi bao gồm logic cho những gì bạn cần để triển khai trong MySQL .