Несколько примеров реальных мер DAX и их аналогов на SQL:
- Общая сумма продаж
- DAX:
Total Sales = SUM(Sales[SalesAmount])
- SQL:
SELECT SUM(SalesAmount) AS TotalSales FROM Sales
- Количество уникальных клиентов
- DAX:
Unique Customers = DISTINCTCOUNT(Sales[CustomerID])
- SQL:
SELECT COUNT(DISTINCT CustomerID) AS UniqueCustomers FROM Sales
- Средняя сумма заказа
- DAX:
Average Order Amount = AVERAGE(Sales[OrderAmount])
- SQL:
SELECT AVG(OrderAmount) AS AverageOrderAmount FROM Sales
- Максимальная цена продукта
- DAX:
Max Product Price = MAX(Products[Price])
- SQL:
SELECT MAX(Price) AS MaxProductPrice FROM Products
- Общее количество продуктов в категории
- DAX:
Products in Category = COUNTROWS(FILTER(Products, Products[Category] = "Category Name"))
- SQL:
SELECT COUNT(*) AS ProductsInCategory FROM Products WHERE Category = 'Category Name'
- Сумма продаж за предыдущий год
- DAX:
Previous Year Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSYEAR(Calendar[Date]))
- SQL:
SELECT SUM(SalesAmount) AS PreviousYearSales FROM Sales WHERE YEAR(SalesDate) = YEAR(GETDATE()) - 1
- Доля продаж продукта в общей сумме продаж
- DAX:
Product Sales Share = DIVIDE(SUM(Sales[SalesAmount]), CALCULATE(SUM(Sales[SalesAmount]), ALL(Products)))
- SQL:
SELECT SUM(SalesAmount) / (SELECT SUM(SalesAmount) FROM Sales) AS ProductSalesShare FROM Sales WHERE ProductID = 'Product ID'
- Совокупный доход по месяцам
- DAX:
Cumulative Revenue = CALCULATE(SUM(Sales[Revenue]), FILTER(ALL(Calendar), Calendar[Date] <= MAX(Calendar[Date])))
- SQL:
SELECT SUM(Revenue) AS CumulativeRevenue FROM Sales WHERE YEAR(SalesDate) = YEAR(GETDATE()) AND MONTH(SalesDate) <= MONTH(GETDATE())
- Рейтинг продуктов по количеству продаж
- DAX:
Product Sales Rank = RANKX(ALL(Products), SUM(Sales[SalesQuantity]))
- SQL:
SELECT ProductID, RANK() OVER (ORDER BY SUM(SalesQuantity) DESC) AS ProductSalesRank FROM Sales GROUP BY ProductID
- Скользящее среднее продаж за 3 месяца
- DAX:
3-Month Moving Average = AVERAGEX(DATESBETWEEN(Calendar[Date], LASTDATE(Calendar[Date]), -2), SUM(Sales[SalesAmount]))
- SQL:
SELECT AVG(SalesAmount) AS 3MonthMovingAverage FROM Sales WHERE SalesDate BETWEEN DATEADD(MONTH, -2, GETDATE()) AND GETDATE()
- DAX:
Эти примеры демонстрируют различные сценарии использования мер DAX и их аналогов на SQL. Они охватывают агрегацию данных, фильтрацию, вычисления с использованием временных периодов, ранжирование и скользящие средние значения. Конечно, это лишь некоторые примеры, и возможности мер DAX и SQL гораздо шире и могут быть адаптированы к конкретным потребностям и структуре данных вашего проекта.