Sử dụng hàm cửa sổ DENSE_RANK()
với OVER()
mệnh đề:
DECLARE @tbl TABLE(Column1 INT,Column2 INT,Column3 VARCHAR(100));
INSERT INTO @tbl VALUES(1,1,'A')
,(1,2,'A')
,(1,3,'B')
,(2,1,'A')
,(2,2,'A')
,(2,3,'B')
,(3,1,'A')
,(3,2,'B')
,(3,3,'V');
SELECT *
,DENSE_RANK() OVER(PARTITION BY Column1 ORDER BY Column3) AS ComputedColumn
FROM @tbl;
PARTITION BY
sẽ khởi động lại bộ đếm cho từng giá trị mới trong column1
, trong khi ORDER BY
xác định thứ hạng.
Gợi ý:Không dán ảnh!
Đối với câu hỏi tiếp theo của bạn, vui lòng làm theo ví dụ của tôi để tạo một ví dụ độc lập mô tả vấn đề của bạn và thêm mã bạn đã tự thử.