Sự khác biệt giữa **PARTITIO...
Sự khác biệt giữa **PARTITIO...
Sự khác biệt chính giữa PARTITION BY
và GROUP BY
trong SQL nằm ở cách chúng xử lý và trả về dữ liệu:
GROUP BY
được sử dụng để nhóm các bản ghi có giá trị giống nhau trong một hoặc nhiều cột và thường được sử dụng cùng với các hàm tổng hợp (như SUM, AVG, COUNT,...) để thực hiện các phép tính trên mỗi nhóm. Kết quả trả về của GROUP BY
là một tập hợp các dòng, mỗi dòng đại diện cho một nhóm và chứa kết quả của phép tính tổng hợp cho nhóm đó. Điều này có nghĩa là số dòng trả về thường ít hơn số dòng trong bảng gốc, vì các bản ghi được "gom" lại thành nhóm.
PARTITION BY
là một phần của cú pháp của hàm cửa sổ (Window Function) và không làm giảm số lượng dòng trả về như GROUP BY
. Thay vào đó, PARTITION BY
chia bảng dữ liệu thành các phần (partition) dựa trên giá trị của một hoặc nhiều cột, sau đó hàm cửa sổ được áp dụng độc lập cho mỗi phần. Điều này cho phép thực hiện các phép tính như tổng hợp, xếp hạng,... trên mỗi phần mà không cần gom nhóm dữ liệu lại, giữ nguyên số dòng ban đầu của bảng.
Ví dụ, khi sử dụng GROUP BY
, nếu bạn muốn tính tổng doanh thu theo từng khu vực, bạn sẽ nhận được một dòng cho mỗi khu vực với tổng doanh thu tương ứng. Trong khi đó, sử...
senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào