DAX和SQL中子查询以及条件
SQL作为查询语言,最有力的工具就是可以使用子查询。DAX也有类似的功能,但是DAX中的子查询写法,更加接近自然语言。
例如,在SQL中,要获取客户和销售额,但是只要购买金额大于100的客户,你可以这样写。
SELECT
CustomerName,
SumOfSales
FROM (
SELECT
Customers.CustomerName,
SUM ( Sales.SalesAmount ) AS SumOfSales
FROM
Sales
INNER JOIN Customers
ON Sales.CustomerKey = Customers.CustomerKey
GROUP BY
Customers.CustomerName
) AS SubQuery
WHERE
SubQuery.SumOfSales > 100
在DAX中得到这样的结果,需要这么写:
EVALUATE
FILTER (
SUMMARIZE (
Customers,
Customers[CustomerName],
"SumOfSales", SUM ( Sales[SalesAmount] )
),
[SumOfSales] > 100
)
在这个代码中,子查询获取客户名和销售额是在filer中实现。这个阶段,这代码对您可能难以理解,但是接下来马上你就要学习DAX,会发现在DAX中使用子查询会比sql简单的多,更接近自然语言。
网友评论