15個很具代表性的mdx查詢語句
出處 www.sqlmag.com 原作者russ whitney
02. 所有商店中銷售前10名的產品類別有哪些?
listing 2 直接利用topcount()函式查詢銷售前10名的產品。
(這是一種最直接的方法,topcount()函式本身自帶排序(降序)的功能)
listing 2: determining top 10 product categories
說明:查詢銷售前10名的產品類別
select oncolumns,
topcount( [product].[product category].members, 10, ([unit sales]) ) onrows
from sales
查詢結果展示:
03. 在美國,剛剛過去的三個季度裡都有銷售量的食品和飲料有哪些?
(這個查詢也可以理解為「過去三個季度裡食品和飲料銷售量都不為0的產品有哪些?」)。查詢listing 3 示範了如何動態的確定對應的時間集合—這是一項很有價值的技巧。時間集合動態隨著cube資料的更新而改變(也就是說該查詢無論你在什麼時候執行,無論cube的資料作了多少次更新,結果都是最近三個月的資料)。首先,自定義集合lastquarter定義了時間維度中有銷售記錄的最近乙個季度。自定義集合last3quarters在lastquarter的基礎上利用range()函式(實際沒有range()函式,冒號:就是作者說的函式)指定了以lastquarter為最後乙個季度的連續的三個季度。我不直接在last3quarter(原文是lastquarter,我認為是作者筆誤)的定義中使用tail()函式是因為這樣做返回的可能不是連續的三個季度;因為空記錄的季度肯能出現在任何季度,filter()函式只能排除掉空季度。lag()函式結合range()函式,確保了返回的三個季度是連續的。
在這個查詢中,item(0).item(0) 函式取得指定集合的第乙個成員,因為集合在技術上就是一組元組[如:來自不同維度的一系列成員也可以組成乙個元組],所以用第乙個item()函式選擇元組,第二個item()選擇該元組裡的成員。(我們可以這樣理解,集合由元組組成,元組由成員組成)。
listing_03.determining brands sold during the past three quarters.txt
說明:在過去三個季度裡都存在銷售量的商品銷售記錄
withset [lastquarter] as 'tail(filter([time].[quarter].members, not
isempty([time].currentmember)),1)'
set [last3quarters] as ' [lastquarter].item(0).item(0).lag(2) : [lastquarter].item(0).item(0)'
select [last3quarters] oncolumns,
nonemptyunion(descendants( [food], [product].[brand name] ), descendants( [drink],
[product].[brand name] )) onrows
from sales
查詢結果展示:
注:topcount 從集合頂端開始返回指定數目的項,可以選擇首先對集合排序。
例子 select on columns,
topcount(descendants([store].[all stores].[usa],[store].[store city] ), 10, [store sales]) on rows from sales
subset 從集合中返回元素的子集。
例子 select oncolumns,
onrowsfrom sales
tail 從集合尾部返回子集。
例子 select oncolumns,
onrowsfrom sales
lag 返回指定成員的所在維度上的上乙個成員。
例子 with member [measures].[a1] as 'time.currentmember.lag(1).name'
select on columns , on rows from [sales]
filter 返回根據搜尋條件對集合進行篩選所得到的集合。
例子 select on columns,
on rows from sales
item 從集合中返回指定元組或者從元組中返回指定成員。
例子 with set kkk as '* }'
member measures.jjj as 'tupletostr(kkk.item(0).item(0))',solve_order=1
select on columns,
on rows
from sales
union 返回兩個集合的並集,可以選擇保留重複項。
例子 select on columns,
union(usa.children, canada.children, all)
on rows from sales
舊
很有代表性的sql
union all 外連線 相同的資料不覆蓋,展示所有資料 select sid,sum num from select sid,round count sid 2 as num from f pile where manufacture 深圳盛弘 group by sid union all se...
nginx位址重寫 10個代表性例項
什麼是url重寫 url重寫是指將乙個url請求重新寫成 可以處理的另乙個url的過程。為什麼要重寫 更加安全 url可能會暴露資源存放的具體位置,避免被不懷好意的人利用。if return rewrite setif 匹配正則,區分大小寫 匹配正則,不區分大小寫 不匹配正則,區分大小寫 不匹配正則...
幾很有代表性的個for迴圈的練習題
摺紙 折多少次和珠穆朗瑪峰一樣高 1.一張紙的厚度是0.0001公尺,將紙對折,對折多少次厚度超過珠峰高度8848公尺 最後得到結果 2.有一對幼兔,幼兔1個月後長成小兔,小兔1個月後長成成兔並生下一對幼兔,問8個月後有多少對兔子,幼兔 小兔 成兔對數分別是多少。幼兔 1 小兔 0 成兔 0 初始值...