PARTITION BY
mệnh đề đặt phạm vi bản ghi sẽ được sử dụng cho mỗi "GROUP" trong OVER
mệnh đề.
Trong SQL mẫu của bạn, DEPT_COUNT
sẽ trả về số lượng nhân viên trong bộ phận đó cho mọi hồ sơ nhân viên. (Nó giống như thể bạn đang hủy bỏ danh sách emp
bàn; bạn vẫn trả lại mọi bản ghi trong emp
bảng.)
emp_no dept_no DEPT_COUNT
1 10 3
2 10 3
3 10 3 <- three because there are three "dept_no = 10" records
4 20 2
5 20 2 <- two because there are two "dept_no = 20" records
Nếu có một cột khác (ví dụ:state
) thì bạn có thể đếm có bao nhiêu phòng ban trong Tiểu bang đó.
Nó giống như nhận kết quả của GROUP BY
(SUM
, AVG
, v.v.) mà không có tập hợp kết quả tổng hợp (tức là xóa các bản ghi phù hợp).
Nó hữu ích khi bạn sử dụng LAST OVER
hoặc MIN OVER
các chức năng để lấy, ví dụ, mức lương thấp nhất và cao nhất trong bộ phận và sau đó sử dụng mức lương đó trong một phép tính dựa trên mức lương hồ sơ này không có một lựa chọn phụ, nhanh hơn nhiều.
Đọc bài viết AskTom được liên kết để biết thêm chi tiết.