我正在嘗試編寫MDX查詢以返回有關調查問題的一些信息。我希望在我的結果中獲得平均回覆和總回覆。我有兩種類型的問題。一類問題只有一個答案。另一類問題可以有多個答案(選擇所有適用的答案)。每個問題都與問題ID和答覆者ID相關聯。下面的查詢工作(有點)如何獲得SSAS MDX查詢中的不同維度值的計數
Select NON EMPTY
{
[Measures].[Average Response], [Measures].[Total Count]
} ON 0
, NON EMPTY
{
([Question].[Question ID].[Question ID].ALLMEMBERS)
} ON 1
From [Cube]
平均響應是從單反應和多個響應(兩個不同的事實表)的組合。總數也是這兩個表的組合。問題是,對於單個回答問題,我只能計算回答者的數量。對於多重回答問題,由於我的答案比我參加問卷調查的人多,因此這些問題會下降。我真的很想知道有多少人提供了答案。要做到這一點,我認爲我需要不同數量的受訪者ID。所以我試着改變我的第一軸。
[Measures].[Average Response], [Measures].[Total Count], DISTINCTCOUNT([Respondent].[Respondent ID])
那麼,這是行不通的,我真的沒有想到它。我得到了「該函數需要3個參數的元組表達式,使用了字符串或數字表達式。」這正在迅速成爲我最喜歡的SSAS錯誤消息。我仍然是綠色的,我想我仍然在思考SQL。如何在同一查詢中獲得平均響應和不同維度值的計數。順便說一句,我的查詢確實有一個切片機,如果需要,我可以提供,但我不認爲它是相關的,因爲我在切片機或不切片機的情況下得到相同的問題。
我嘗試了你所說的,並且得到了我最喜歡的消息_「該函數需要1個參數的元組集合表達式,使用了一個字符串或數字表達式。」_另外,如果我嘗試將它與平均值一起使用我得到_「成員,元組或集合必須在函數中使用相同的層次結構。」令人沮喪的部分是我確切知道如何在SQL中執行此操作。 –
我可以同情 - 我對MDX本人仍然很不好,現在已經在做SSAS了;-)。說到這一點,當你運行'distinctcount'函數時,當你手動創建一個集合時會發生什麼,例如'答覆者] [答卷人ID],[Q1],[答辯人]。[答辯人身份證號碼]。[Q2],[答辯人]。[答辯人身份證號碼]。[Q3]}' '(根據情況更新問題成員)並查看是否可以收到回覆? –