Sum of SalesAmount = SUM(FactInternetSales[SalesAmount])
Number of Sales = DISTINCTCOUNT((FactInternetSales[SalesOrderNumber]))
Number of Unique Products = DISTINCTCOUNT(FactInternetSales[ProductKey])
Number total To date = CALCULATE(COUNT(DimProduct[ModelName]),
DATESYTD(DimProduct[StartDate]))
Average Sales Count in Store = AVERAGEX(DimStore, FactInternetSales[Number of Sales])
Count of All Stores = DISTINCTCOUNT(DimStore[StoreName])
Count of Active Stores = CALCULATE(DISTINCTCOUNT(DimStore[StoreName]),
FILTER(DimStore, DimStore[Status] ="On"))
Sum of SalesAmount Prev Year =
CALCULATE([Sum of SalesAmount], SAMEPERIODLASTYEAR(DimDate[FullDateAlternateKey]) )
Sum of SalesAmount To Date =
CALCULATE([Sum of SalesAmount], DATESYTD(DimDate[FullDateAlternateKey]) )
cumul annuel = CALCULATE([Sum of SalesAmount],
ALLSELECTED('DimDate'[MonthNumberOfYear]))
Exercice 2:
1. C’est dans un schéma en étoile qu’on gagne en termes de temps de chargements de
données parce que l’espace de stockage est plus grande. 2. On fait le choix de normaliser les données dans le transactionnel pour réduire la redondance et l’incohérence des données. Alors qu’en décisionnel on peut faire le choix de normaliser pour obtenir une exécution plus rapide des requêtes grâce à l’introduction de redondance. 3. Dans la zone de préparation les données sont souvent détruites après chargement dans le datawarehouse parce qu’il y a une traçabilité des informations, les données sont non volatiles. 4. Une table de dimensions contient en général moins d’enregistrement qu’une table des faits parce qu’elle fournit toutes les entrées aux tables de faits et les dimensions sont relativement très petites par rapport à la table de fait. 5. Les tables de dimensions contiennent l’ensemble des informations descriptives des faits parce qu’ils sont joints à la table de faits via une clé étrangère.