書名: DAX設計模式(第2版)作者名: (意)阿爾貝托·法拉里等本章字數: 802字更新時間: 2022-12-20 18:38:57
2.1 時間智能計算介紹
為了使用所有時間智能計算,你需要一個格式正確的日期表(Date表)。該Date表必須滿足以下要求。
● 必須具備年份中的所有日期。該Date表必須始終始于1月1日、終于12月31日,并包括此日期范圍內的所有天。如果報告僅采用會計年度,則Date表必須包含從會計年度的第一天到最后一天的所有日期。例如,如果2008會計年度始于2007年7月1日,則Date表必須包括從2007年7月1日到2008年6月30日的所有天。
● 必須具有包含數據類型為“日期/時間”或“日期”的不重復值的列。該列通常命名為Date。盡管Date列通常用于定義與其他表的關系,但這不是強制的。不過,Date列必須包含不重復值,并應為其應用“標記為日期表”功能。如果該列還包含時間部分,則不應使用時間——例如,時間應始終為12:00 am。
● 模式中的Date表必須標記為Date表,以防沒有基于Date而與其他表(如示例中的Sales)建立聯系。[1]
[1] 對于符合Date表要求且位于一對多關系一端的Date表,不將其標記為Date表,它也會自動具備Date表的特性。——譯者注
創建Date表的方法有以下幾種。只要Date表滿足要求,創建Date表的方式就不會影響你使用標準時間智能計算。如果你已經有一份符合報告需要的Date表,則只需在確保該表可以滿足最低要求后,便可將其導入并將其標記為Date表。如果沒有Date表,則可以使用DAX計算表來創建(后面會做介紹)。
最佳做法是對用于時間智能計算的Date表應用“標記為日期表”設置。“標記為日期表”設置會在每次對Date列應用篩選器時,在Date表上增加一個REMOVEFILTERS修飾符。用于CALCULATE的所有時間智能函數都會執行此操作(對Date列應用篩選器)。如果你使用Date列定義Sales表和Date表之間的關系,則DAX會執行相同的操作。盡管如此,將“標記為日期表”設置應用于Date表依然是最佳做法。如果你有多個Date表,則可以將它們全部標記為日期表。
如果你沒有采用“標記為日期表”設置,而且也沒有使用Date列來建立關系,那么每當你在CALCULATE中使用時間智能函數時,都必須在Date表上增加一個REMOVEFILTERS。SQLBI官網中的“Time Intelligence in Power BI Desktop”一文對此進行了詳細描述。
- Vue.js前端開發技術
- 玩轉微信
- TensorFlow與自然語言處理應用
- 中文版Photoshop CS6完全使用手冊(超值版)
- ANSYS19.0實例詳解
- Sphinx Search Beginner's Guide
- 從零開始:Photoshop CC 2019中文版基礎教程
- 從零開始:AutoCAD 2015中文版機械制圖基礎培訓教程
- BPEL Cookbook: Best Practices for SOA/based integration and composite applications development
- SolidWorks2014基礎實例教程
- 邊做邊學:Photoshop+CorelDRAW綜合實訓教程
- Building Websites with Joomla! 1.5
- OpenCart 1.4 Template Design Cookbook
- 3D打印輕松實踐:從材料應用到三維建模
- 原片蛻變:Photoshop CC商業修圖必修課