❶ 請問MDX是什麼意思
多維表達式
MDX是OLAP多維立方體查詢語言,支持定義和操作多維對象和數據,在功能上類似於關系資料庫查詢語言sql。它語法豐富,執行效率高,功能強大,是OLAP伺服器與外界交互的專用語言。
以下出自 《SQL Server 2005 聯機叢書》
多維表達式 (MDX) 是一種功能完備、基於語句的腳本語言,用於定義、使用以及從 Microsoft SQL Server 2005 Analysis Services (SSAS) 中的多維對象中檢索數據。MDX 提供以下幾種語言功能:
用於創建、刪除以及使用多維對象的數據定義語言 (DDL) 語句。
用於從多維對象中檢索操作數據的數據操作語言 (DML) 語句。
用於管理作用域、上下文以及 MDX 腳本內的流控制的腳本語言語句。
用於操作從多維對象中檢索的數據的大量運算符和函數。
使用用戶定義函數擴展 MDX 的功能。
MDX 在很多方面與關系資料庫常用的 SQL 語法類似,但 MDX 不是 SQL 語言的擴展。事實上,MDX 所提供的一些功能也可由 SQL 提供,盡管不是那麼有效或直觀。
❷ 數據倉庫多維數據集 MDX查詢的問題
再用笛卡兒積乘下試試,你的計算度量 [Dim Date Of Hour].[Date Of Hour Key].[最大值] 本身是一個計算結果,最大值是不能換的,只能考慮通過其他寫法實現。
with member [Dim Date Of Hour].[Date Of Hour Key].[最大值] as MAX({[Dim Date Of Hour].[Date Of Hour Key].&[0]:[Dim Date Of Hour].[Date Of Hour Key].&[23]})
select [Dim User Type].[Type Name].children on columns,
NonEmpty([Dim Date].[Full Date].children*[Dim Date Of Hour].[Date Of Hour Key].[最大值]*[Dim Date Of Hour].[Date Of Hour Key]) on rows
from [Kysd Statistics V2DB]
where [Dim User Type].[Parent User Type Key].&[2]
❸ sql查詢的日期比較在mdx查詢中如何表達
select * from 表名 where 日期a<日期b
❹ 如何看懂mdx腳本語言 root
如果未指定維度名稱和元組表達式,則 Root 函數從多維數據集的每個屬性層次結構中返回包含 All 成員(如果 All 成員不存在,則為默認成員)的元組。 成員在元組中的順序基於多維數據集中定義屬性層次結構的順序。
如果指定了維度名稱,則 Root 函數根據當前成員的上下文,從該維度中的每個屬性層次結構中返回包含 All 成員(如果 All 成員不存在,則為默認成員)的元組。 成員在元組中的順序基於維度中定義屬性層次結構的順序。
❺ MDX語句中的過濾filter用法謝謝
mdx的過濾也是where條件,不過where條件限定的是多維數據集的切片器維度或成員。
簡單的例子: where ([xx].[xxx]) [xx].[xxx]就是當前mdx查詢語句的切片器維度了
❻ MDX語句的介紹
MDX語句(MultiDimensionalExpressions)是一種語言,支持多維對象與數據的定義和操作。它可以表達在線分析出來數據卡上的選擇、計算和一些元數據定義等操作,並賦予用戶表現查詢結果的能力。
❼ MDX多維查詢,where 後面的條件如何帶變數
可以的。
使用 :
declare 定義變數
set 給變數賦值
如圖示例:
❽ MDX解決方案的目錄
第1章MDX入門1
1.1什麼是MDX1
1.2查詢基礎2
1.3軸框架:名稱與編號4
1.4大小寫敏感與布局5
1.5構造簡單的MDX6
1.5.1逗號(,)與冒號(:)6
1.5.2.Members7
1.5.3使用.Children獲得一個成員的子成員8
1.5.4使用Descendants()獲取一個成員的後代成員9
1.6去除查詢結果中的空切片11
1.7MDX中的注釋13
1.8MDX數據模型:元組和集14
1.8.1元組14
1.8.2集16
1.8.3查詢17
1.9更多基本詞彙18
1.9.1CrossJoin()18
1.9.2Filter()20
1.9.3Order()22
1.10查詢成員屬性24
1.11查詢單元屬性26
1.12客戶端結果數據布局27
1.13小結28
第2章計算成員和命名集簡介29
2.1採用計算成員形式的維度計算29
2.2計算成員作用域30
2.2.1計算成員和查詢的WITH部分31
2.2.2公式的優先順序(求解順序)32
2.3基本的計算函數37
2.3.1算術操作符37
2.3.2概要統計操作符37
2.3.3Avg()函數38
2.3.4Count(),.Count38
2.3.5DistinctCount()函數(Microsoft擴展)39
2.3.6Sum()函數39
2.3.7Max()函數40
2.3.8Median()函數40
2.3.9Min()函數40
2.3.10NonEmptyCount()函數(Hyperion擴展)41
2.3.11Stdev()和Stddev()函數41
2.3.12StdevP()和StddevP()函數(Microsoft擴展)41
2.3.13Var()和Variance()函數42
2.3.14VarP()和VarianceP()函數(Microsoft擴展)42
2.4補充的函數42
2.5命名集簡介44
2.6小結47
第3章MDX中的通用計算和選擇49
3.1MDX中的元數據引用函數51
3.2多種比率﹑均值﹑百分比和分配52
3.3貢獻率(同一層次結構中級別之間的簡單比率)52
3.3.1對總額的貢獻率53
3.3.2使用.CurrentMember函數53
3.3.3使用.Parent函數53
3.3.4使用.CurrentMember函數和.Parent函數獲得父對象份額53
3.3.5使用Ancestor函數54
3.3.6使用.CurrentMember函數和Ancestor函數計算祖先對象的份額54
3.3.70作除數的處理56
3.4基本分配56
3.4.1基於另一種比率的數量比例分配56
3.4.2沿層次結構的非加權分配57
3.5均值57
3.5.1簡單均值57
3.5.2加權均值58
3.6基於時間的引用和時間序列的計算60
3.6.1各時期(Period-to-Period)的引用和計算60
3.6.2去年同期的引用和計算61
3.7本年至今的聚合61
3.8移動均值和52周的最高價/最低價63
3.9使用LastPeriods()選擇基於目標成員的時間范圍65
3.10沿不同維度的不同聚合(使用MDX的半加性度量)65
3.11混合聚合:非時間總和,沿時間的均值、最小值與最大值66
3.12混合聚合:非時間總和,沿時間維度的期初/期末結餘66
3.13對於緩慢變化值的余額轉結和最後輸入的結余報告67
3.14查找數據全部輸入的最後時間成員71
3.15在MDX表達式中使用成員屬性(計算和分類)71
3.16處理邊界條件(超出范圍的成員,0或其他作除數)74
3.16.1處理不足的范圍尺寸74
3.16.2處理不足的層次結構深度75
3.16.3處理錯誤的級別引用75
3.16.40作除數的處理76
3.17小結77
第4章MDX查詢上下文與執行79
4.1查詢中的單元上下文和解析次序80
4.1.1查詢的執行階段80
4.1.2單元求值(對任何單元)87
4.1.3解析NONEMPTY軸89
4.1.4解析AS2005中的HAVING子句90
4.1.5循環上下文和.CurrentMember函數92
4.1.6AS2005中成員的相互聯系:強層次結構性、自存在性和屬性關系93
4.2在AS2005中修改多維數據集上下文96
4.2.1CREATESUBCUBE語句97
4.2.2在AS2005中的FROM子句中使用SELECT103
4.2.3無限遞歸:在計算上下文可能遇到的「陷阱」106
4.2.4特定產品解析次序的使用106
4.3非數據:無效數字、NULL(空)和無效成員109
4.3.1無效計算:0作除數和數字錯誤109
4.3.2空單元的語義110
4.3.3無效位置112
4.4計算中的單元屬性優先順序114
4.4.1顯示格式化的優先順序115
4.4.2計算單元中的數據類型116
4.5操作中多維數據集的上下文117
4.6KPI中的多維數據集上下文117
4.7AS2005中全局、會話和指定查詢計算之間的定義的可見性117
4.8小結119
第5章命名集與集的別名121
5.1命名集:作用域和上下文121
5.2命名集的常規使用122
5.3集的別名124
5.3.1集的別名的示例124
5.3.2深入了解集的別名126
5.3.3當集的別名是必需的情況128
5.4小結130
第6章MDX中的排序和分類131
6.1函數131
6.2典型的Top-N選擇132
6.2.1加入分類數(使用Rank()函數)134
6.2.2在集中取得Top-N的後代成員及其他關聯成員138
6.3獲得最少/最多元組以達到臨界值140
6.4獲取元組TopN百分比142
6.5在維度次序中放置成員/元組(首先/最後放置祖先成員)143
6.6集的反向排序144
6.7小結145
第7章MDX高級應用147
7.1將父對象/祖先成員排在子對象之後(而不是之前)148
7.2返回成員下面的子樹,並連同成員一起返回其祖先成員148
7.3使用Generate()將元組操作轉化為集操作149
7.4日期計算/日期算術150
7.5對行/列/軸上選擇的成員定義比率(而非對指定維度定義比率)153
7.6基於報表的父對象總額,報表總額的貢獻率156
7.6.1方法1:唯一的標准MDX方法156
7.6.2方法2:在AnalysisServices中考慮使用VisualTotals()161
7.6.3方法3:使用AS2005子多維數據集163
7.7層次結構中越過級別的層次結構排序164
7.8基於多重規則的單個集排序165
7.9多重層排序或多重維度排序166
7.9.1對每個維度採取相同排序規則的嵌套排序166
7.9.2依據不同標準的嵌套維度排序167
7.10Pareto分析與累積和169
7.11返回top-selling(最暢銷)產品(或其他重要的名稱)作為度量173
7.12已選成員集的最新事件174
7.13積聚大量數據所需的時間集(建立沿時間向前或向後合計的集)177
7.14乘法聚合(乘積代替加和)180
7.15通過集中的並列分類包含所有元組184
7.16公用維度時間分析186
7.17樣本分析188
7.18小結195
第8章使用MicrosoftAnalysisServices的屬性數據模型197
8.1統一維度模型197
8.2維度199
8.2.1屬性、層次結構與聯系201
8.2.2維度查詢205
8.2.3成員屬性207
8.2.4父-子層次結構209
8.2.5Time維度210
8.3多維數據集211
8.3.1維度關系214
8.3.2角色扮演維度217
8.3.3透視圖217
8.3.4鑽取218
8.4UDM中的計算模型218
8.5在UDM上定義安全性219
8.6小結224
第9章HyperionEssbase中屬性維度和成員屬性的用法225
9.1UDA與屬性225
9.2在查詢軸檢索UDA和屬性值226
9.3在計算中使用UDA和屬性227
9.4基於UDA和屬性值選擇基維度成員227
9.4.1使用Attribute函數選擇基於共用屬性值的成員228
9.4.2使用WithAttr函數選擇基於屬性值的成員229
9.4.3使用UDA函數選擇共用UDA值的成員230
9.5用IN連接基成員和屬性層次結構230
9.5.1連接基成員及其實際屬性成員231
9.5.2連接屬性成員及其屬性值231
9.6小結232
第10章通過外部函數擴展MDX233
10.1配合MDX使用存儲過程234
10.2ADOMD伺服器對象237
10.2.1表達式239
10.2.2元組生成器239
10.2.3集生成器240
10.2.4MDX240
10.2.5上下文241
10.2.6伺服器元數據對象242
10.3AMO.NET託管存儲過程243
10.4靜態函數與非靜態函數的性能評估244
10.4.1調試.NET存儲過程245
10.4.2NULL、ERROR()與異常等方面的附加程序設計246
10.4.3使用存儲過程以獲得動態安全性248
10.4.4COMDLL存儲過程251
10.5參數與返回類型的深入討論251
10.6用於COM存儲過程的MDX函數256
10.6.1SetToStr()與TupleToStr()256
10.6.2Members()、StrToSet()與StrToTuple()256
10.7外部函數示例:TimeSpanUntilSum()函數258
10.8載入和使用存儲過程260
10.9存儲過程名稱解析261
10.10在MDX中調用存儲過程262
10.11對存儲過程的其他考慮因素263
10.12小結263
第11章通過MDX改變多維數據集和維度環境265
11.1在會話中改變維度的默認成員266
11.2維度回寫操作266
11.2.1創建新成員267
11.2.2在維度中移動成員267
11.2.3刪除成員268
11.2.4更新成員定義268
11.3刷新單元數據與維度成員269
11.4把數據寫回多維數據集269
11.4.1標准單元寫回270
11.4.2提交與回滾270
11.4.3使用UPDATECUBE270
11.5小結273
第12章MicrosoftAnalysisServices中計算的多種方法275
12.1計算機制概述276
12.1.1度量的固有聚合276
12.1.2使用一元運算符匯總277
12.1.3自定義成員公式279
12.1.4計算成員280
12.1.5單元計算283
12.1.6條件格式化287
12.2各類計算如何交互288
12.2.1無單元計算的交互288
12.2.2單元計算傳遞289
12.2.3使用求解順序來決定傳遞中的公式293
12.2.4計算成員本身不是聚合的294
12.2.5自定義匯總、自定義成員與計算單元結果的固有聚合295
12.3使用不同計算技術時應注意的問題295
12.4小結296
第13章AnalysisServices2005中的MDX腳本297
13.1MDX腳本基礎297
13.1.1什麼是MDX腳本297
13.1.2計算語句299
13.1.3子多維數據集300
13.1.4賦值與聚合303
13.1.5賦值與計算成員307
13.1.6賦值與命名集308
13.2MDX腳本以及更復雜的多維數據集309
13.2.1多屬性層次結構309
13.2.2用戶層次結構315
13.2.3父子屬性層次結構316
13.2.4多對多維度317
13.2.5事實維度與引用維度319
13.2.6半累加性度量與非累加性度量319
13.2.7一元運算符與自定義成員公式321
13.3高級MDX腳本323
13.3.1定義帶有SCOPE的子多維數據集323
13.3.2MDX表達式賦值326
13.3.3給子多維數據集賦予一個錯誤的值329
13.3.4將單元屬性值賦給子多維數據集330
13.3.5條件賦值331
13.4現實世界中的MDX腳本332
13.4.1TimeIntelligence向導332
13.4.2回顧基本分配335
13.5小結336
第14章增強客戶端的交互337
14.1使用鑽取338
14.1.中針對鑽取的改進與改變338
14.1.2鑽取MDXI339
14.1.3與鑽取相關的重要問題340
14.1.4鑽取MDXII342
14.1.5鑽取安全性343
14.2使用操作343
14.2.1使用操作能夠做什麼?344
14.2.2操作的目標347
14.2.3定義操作348
14.2.4與操作相關的編程注意事項351
14.2.5刪除操作354
14.3使用KPI355
14.3.1創建KPI355
14.3.2MDXKPI函數358
14.3.3使用KPI359
14.4小結361
第15章客戶端編程基礎363
15.1ADOMD.NET基礎364
15.1.1先決條件365
15.1.2建立連接365
15.2處理元數據366
15.2.1獲取構架行集366
15.2.2使用構架行集時的互操作性問題367
15.2.3使用元數據對象模型367
15.2.4使用元數據對象模型時的互操作性問題368
15.2.5維度特性368
15.2.6處理ADOMD.NET元數據緩存369
15.3執行查詢370
15.3.1執行命令370
15.3.2參數化命令371
15.3.3使用CellSet對象372
15.3.4關於從查詢中獲取信息的更多細節376
15.3.5關鍵性能指標381
15.4執行操作382
15.5處理「平展的」MDX結果383
15.6小結387
第16章優化MDX389
16.1從AnalysisServices2000到AnalysisServices2005的體系結構改動390
16.2優化集操作391
16.2.1交叉聯接集合之上求和391
16.2.2交叉聯接集之上進行篩選393
16.2.3優化TopCount()和BottomCount()394
16.2.4AnalysisServices2005中的NonEmpty函數395
16.2.5優化排序:Order()396
16.2.6針對較大數據集查詢的UnOrder函數397
16.3優化求和397
16.4將計算設計在資料庫中(將成員屬性放入度量中以及新的MDX函數MemberValue中)398
16.5MDX腳本優化400
16.5.1計算的細節400
16.5.2避免葉級別的計算401
16.5.3在多維數據集設計中避免葉級別計算402
16.5.4度量值表達式優化葉級別計算403
16.5.5葉級別計算的MDX腳本優化404
16.5.6AnalysisServices2005:使用屬性層次結構而不是成員屬性406
16.5.7AnalysisServices2005:使用Scope來替代IIF407
16.6在MDX腳本中避免使用慢速函數409
16.6.1為了更好的性能而改變計算邏輯:流計算409
16.6.2使用伺服器本地特性而不是腳本來進行與聚合相關的計算411
16.7小結412
第17章使用本地多維數據集413
17.1選擇使用何種語法414
17.2使用CREATECUBE語句414
17.2.1過程概述414
17.2.2CREATECUBE語句剖析415
17.2.3定義維度416
17.2.4級別417
17.2.5定義度量422
17.2.6添加命令423
17.2.7ROLAP與MOLAP424
17.2.8INSERTINTO語句剖析424
17.2.9多維數據集目標425
17.2.10INSERTINTO中的OPTIONS子句427
17.2.11SELEC子句428
17.2.12構造提示430
17.2.13從本地多維數據集到伺服器多維數據集431
17.2.14匯總與自定義成員公式431
17.3使用CREATEGLOBALCUBE語句433
17.3.1過程概述433
17.3.2CREATEGLOBALCUBE語句剖析433
17.3.3定義度量434
17.3.4定義維度434
17.3.5定義級別435
17.3.6定義切片成員435
17.3.7需要注意的事項436
17.4使用分析服務腳本語言436
17.4.1過程概述436
17.4.2ASSL語句剖析437
17.4.3安全性437
17.5小結438
附錄AMDX函數與運算符參考439
附錄B影響MDX的連接參數523
附錄C單元與成員的內部屬性541
附錄D格式化字元串編碼551
附錄E學習資源559
……
❾ 問一下SQLSERVER裡面 能用MDX語句查詢嗎
MDX在SQLserver裡面一般是用來查詢Cube的,所以SQLserver的SSAS(SQLserver Analysis Service)所建立 的cube是能夠使用MDX的。
不然你在SQLserver裡面建的普通關系型資料庫用多維查詢語句也沒用。