Sql-Server-2017

SSAS表格模型日期維度與時間可能嗎?

  • June 5, 2019

我正在建構我的第一個 SSAS 表格模型,並認為一切進展順利,直到嘗試通過 DateTime 創建度量。

在我的倉庫中,我有一個 DIm_Time 維度,它有一個 DateTime 列,過去 2 年每 5 分鐘有一行。5 分鐘是我們需要的粒度。另外,表上有一個 TimeID Identity 列。在我的 ETL 中,我根據每個事實表的 5 分鐘範圍為每個事實表分配一個時間 ID。所以最終結果是 ID 上的 2 個表之間的關係,假設每個 TimeID 有 10 個事實。

現在我正在嘗試對每個時間範圍的行數進行簡單的計數。例如,目前小時有多少事實。我發現的問題是,在測試我的度量時,我在 PowerBI 或 Excel 中都沒有看到任何數據,而且我 90% 確信這與我的模型在計算度量時將我的 DateTime 過濾為日期有關。

Fcts by Date:= 
CALCULATE ( COUNTA(Fct_Table[IDColumn]), Dim_Time[DateTime])

請有人幫我指出正確的方向,因為我正在努力尋找有關使用 DateTime 維度的任何內容。非常感謝你。

我是,使用 SQL/SSAS 2017

通常,我將日期和時間保留在單獨的維度中,因為這會降低整體基數,但即使您的日期維度具有時間元素,獲取此值也不會有問題。下面的範例是在我自己的系統上編寫的,並在 DAX Studio 中進行了測試:

DEFINE 
   MEASURE Sales[TransactionCountPerTimePeriod] = COUNTROWS('Sales')
EVALUATE
SUMMARIZECOLUMNS (
   'Date'[DateKey],
   "Transaction Count", [TransactionCountPerTimePeriod]
);

為了在模型中完成這項工作,只需定義度量並包含它,如下所示:

TransactionCountPerTimePeriod:=COUNTROWS('Sales')

然後,在發布模型後,您應該會在 DAX Studio、Power BI、Excel 或任何其他報告工具中看到它:

-- no need to define the measure if it is already in the model
-- just use it
EVALUATE
SUMMARIZECOLUMNS (
   'Date'[DateKey],
   "Transaction Count", [TransactionCountPerTimePeriod]
);

引用自:https://dba.stackexchange.com/questions/239867