Xem xét phân vùng partition by
tương tự với các trường mà bạn sẽ group by
, sau đó, khi các giá trị phân vùng thay đổi, chức năng cửa sổ sẽ khởi động lại lúc 1
CHỈNH SỬA được chỉ ra bởi a_horse_with_no_name, cho nhu cầu này, chúng tôi cần dense_rank()
không giống như row_number()
rank()
hoặc dense_rank()
lặp lại các con số mà nó chỉ định. row_number()
phải là một giá trị khác nhau cho mỗi hàng trong một phân vùng. Sự khác biệt giữa rank()
và dense_rank()
là cái sau không "bỏ qua" số.
Đối với truy vấn của bạn, hãy thử:
dense_rank() over (partition by Username, Game order by ct."date") as "Attempts"
Nhân tiện, bạn không phân vùng theo và sắp xếp theo cùng một trường; chỉ cần đặt hàng sẽ là đủ nếu đó là nhu cầu. Nó không có ở đây.