Câu hỏi phỏng vấn T-SQL
Câu hỏi

Sự khác biệt giữa **PARTITIO...

Câu trả lời

Sự khác biệt chính giữa PARTITION BYGROUP 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[4][5].

  • 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[5][7].

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ử dụng `PARTITIO...

senior

senior

Gợi ý câu hỏi phỏng vấn

senior

TRUNCATEDELETE ảnh hưởng đến Identity như thế nào?

middle

Khác nhau giữa Azure SQL Database và Azure SQL Managed Instance?

middle

Cung cấp một ví dụ về Left Outer Join kèm theo điều kiện loại trừ.

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào