Cần tính thứ hạng doanh số của nhân viên bằng cách self-join bất đẳng thức (không dùng hàm cửa sổ): hạng của một người = số người có doanh số cao hơn cộng 1. Dữ liệu ở bảng nv.
| Cột | Kiểu | Ý nghĩa |
|---|---|---|
| ten | nvarchar(50) | Tên nhân viên |
| doanhso | int | Doanh số (triệu đồng) |
Người có doanh số cao nhất đứng hạng 1. Người cùng doanh số có cùng hạng.
Ví dụ doanh số 90, 90, 80 → hạng 1, 1, 3.
SETUP SQL tạo bảng nv và chèn doanh số nhân viên.
doanhso ≥ 0. Hạng tính bằng đếm số người doanh số lớn hơn cộng 1. Không dùng RANK().
Ba cột: ten, doanhso, hang. Sắp xếp theo doanhso giảm dần, rồi ten tăng dần.
Ví dụ:
Đầu vào:
CREATE TABLE nv (ten nvarchar(50), doanhso int);
INSERT INTO nv VALUES (N'An',90),(N'Binh',90),(N'Cuong',80);
Đầu ra:
An 90 1
Binh 90 1
Cuong 80 3
Giải thích:
Đang tải editor...