Row context in DAX
- AutoReport
- Jul 4, 2023
- 2 min read

Filter context không phải evaluation context duy nhất mà DAX sử dụng. Có một evaluation context khác được gọi là 𝗿𝗼𝘄 𝗰𝗼𝗻𝘁𝗲𝘅𝘁. Row context dễ hiểu hơn nhiều so với filter context vì nó trực quan hơn. Row context có thể áp dụng cho hầu hết các calculated columns, trong đó biểu thức được liên kết với các giá trị trong dòng hiện tại và cả với các measures.
Row context là gì? Chúng ta đều biết “copy down” trong Excel khi chúng ta bắt đầu với một công thức trong ô đầu tiên của cột, sao chép nó xuống và nó được tính toán cho mọi dòng trong cột đó. Đây thực chất là row context. Khi sử dụng row context, biểu thức DAX lặp lại mọi dòng trong bảng và các giá trị được biểu thức sử dụng là các giá trị nằm trong dòng hiện tại.
Chúng ta có thể hiểu rằng calculated columns thường sẽ sử row context nhưng làm cách nào để các measure có thể sử dụng row context để tính toán khi bản chất của tất cả các measure là dùng để nhóm và tóm tắt? Tại đây khái niệm về 𝗶𝘁𝗲𝗿𝗮𝘁𝗼𝗿𝘀 xuất hiện.
Có một số hàm DAX thường được sử dụng trong các meausres mà chúng ta gọi là các iterators: SUMX (hoặc bất kỳ hàm “X” nào) và FILTER để đặt tên cho hai 𝗶𝘁𝗲𝗿𝗮𝘁𝗼𝗿𝘀 phổ biến nhất. Các hàm 𝗶𝘁𝗲𝗿𝗮𝘁𝗼𝗿𝘀 tạo ra một row context bên trong measure bằng cách iterate lại bảng được tham chiếu bởi hàm. Hãy nhớ rằng measure bị ảnh hưởng bởi filter context trước để bảng được iterated (cái mà có thể có bộ lọc hoặc bộ lọc chéo trên đó).
Mỗi dòng trong bảng được "truy cập" (trong bộ nhớ) bởi measure, cái mà sau đó thực hiện tính toán trên mỗi dòng hoặc, trong trường hợp LỌC, tìm các giá trị cụ thể trong mỗi dòng. Kết quả của các tính toán này trong mỗi dòng sau đó được hàm sử dụng theo một cách nào đó, ví dụ: trong trường hợp SUMX, các giá trị được tính cho mỗi dòng được tính tổng lại với nhau.
Comments