MDX (Multidimensional Expressions) 是 OLAP 立方體查詢的標準語言,類比 SQL 之於關聯資料庫。本文以電信基站維度模型為例,示範兩類常見查詢模式。
[基站控制器_基站_小區]所有 → 基站控制器 → 基站 → 小區基站載頻數、基站設備型號WITH
MEMBER [Measures].[基站站名] AS
'[基站控制器_基站_小區].CurrentMember.Properties("基站載頻數")'
MEMBER [Measures].[基站] AS
'[基站控制器_基站_小區].CurrentMember.Properties("基站設備型號")'
SELECT
{ [Measures].[基站], [Measures].[基站站名] } ON COLUMNS,
{ [基站控制器_基站_小區].[所有 基站控制器_基站_小區].[成都BSC83].[BSS83:BSS83:SITE-1:] } ON ROWS
FROM Radio_cell
WITH MEMBER:定義查詢範圍內的計算量測,不持久化到立方體CurrentMember.Properties(...):存取維度成員的內建/自訂屬性ON COLUMNS / ON ROWS:定義軸向,MDX 支援最多 128 軸(實務常用 2 軸)[All].[成都BSC83].[BSS83:BSS83:SITE-1:] 精確定位單一基站節點WITH
MEMBER [Measures].[基站載頻數] AS
'[基站控制器_基站_小區].CurrentMember.Properties("基站載頻數")'
MEMBER [Measures].[基站設備型號] AS
'[基站控制器_基站_小區].CurrentMember.Properties("基站設備型號")'
SELECT
{ [Measures].[基站設備型號], [Measures].[基站載頻數] } ON COLUMNS,
EXCEPT(
GENERATE(
[基站控制器_基站_小區].Members,
{
DESCENDANTS(
[基站控制器_基站_小區].CurrentMember,
[基站控制器_基站_小區].[基站],
SELF_AND_BEFORE
)
}
),
{ [基站控制器_基站_小區].[基站控制器].Members }
) ON ROWS
FROM Radio_cell
| 函數 | 作用 |
|---|---|
GENERATE(set, set_expression) | 對第一個集合的每個成員評估第二個集合運算式,並聯集結果 |
DESCENDANTS(member, level, flags) | 取得指定成員在目標層級的後代。SELF_AND_BEFORE 含自身及同層之前輩 |
EXCEPT(set1, set2) | 集合差集:移除 set2 中出現的成員 |