美文网首页
DAX从入门到精通 3-1-1 介绍表函数

DAX从入门到精通 3-1-1 介绍表函数

作者: PowerBI入门到实践 | 来源:发表于2019-06-24 23:27 被阅读0次

    第三章 使用基本的表格函数

    本章,我们要学习值函数和表函数,以及它们的区别。表函数对DAX中实现内部计算非常有用,它不仅用于写计算列和度量值,在写DAX查询时候,也非常好用。
    这里,我们的目标只是介绍一下这些函数,不会深入的讨论。关于它们更详细的介绍,会放到第九章。本章,我们先介绍表函数在DAX中的角色,以及在大部分情况下,我们如何使用它们,同时也会介绍DAX的值表达式。

    介绍表函数

    DAX是一种函数语言,它根据代码,产生一个结果。目前为止,你看到的DAX表达式都是返回一个单一值,例如一个字符或者一个数字。我们称这样的函数为值函数。当你定义一个度量值或者计算列的时候,可以按下面这样书写:

    = 4 + 3
    = "DAX is a beautiful language"
    = SUM ( Sales[Quantity] )
    

    但是,当你写一个DAX表达式,它返回的是一个表的时候。你不能直接用于度量值或者计算列,但是表表达式可以是该DAX表达式的组成部分。例如,下面这个DAX表达式接受一个表表达式作为参数,这个表表达式就需要是一个DAX语句的查询。
    最简单的例子就是表表达式引用表的名称。如下面的表达式,返回了整个sales表的内容。

    = Sales
    

    如果,你把上面的表达式用于度量值或者计算列,那么你将会报错。因为,度量值需要一个值作为结果。你必须要对表表达式进行处理以求获得一个值。通过把使用接受表表达式作为参数的函数,就可以解决整个问题。例如,你可以使用countrows来计算表的总行数。

    = COUNTROWS ( Sales )
    

    countrows使用下面的语法

    COUNTROWS ( <table> )
    

    使用可以接受表表达式作为参数的DAX函数,你可以直接写表的名称作为参数,也可以使用返回表的函数。
    根据DAX返回的类型,我们对返回单一值的函数称为值函数,对返回表的函数,我们称为表函数。例如,countrows是值函数,因为它通过接受一个表作为参数,然后返回一个数值。
    大部分的表函数都是对表进行处理,改变原始表的行或者列。例如,要计算sales表中单价大于100的行数,可以这样写:

    = COUNTROWS (
    FILTER (
    Sales,
    Sales[Unit Price] > 100
    ))
    

    上面这个表达式,filter返回一个表,这个表只包含了单价大于100的记录。对于filter函数,本章后面会详细介绍。
    通常情况,我们在DAX代码中使用表表达式来处理原始表的行,然后计算聚合结果,最后返回单一的值,不能把表表达式直接用于度量值和计算列。但是可以用于计算表的表达式中,或者用于DAX查询中,对原始数据表进行处理。
    例如要返回单价大于100的表,可以使用下面这样的写法。

    = FILTER (
    Sales,
    Sales[Unit Price] > 100
    )
    
    image.png

    DAX还提供了evaluate表达式,可以用来对表进行查询
    上面的语句可以在DAX客户端内查询,例如Microsoft Excel, DAX Studio, SQL Server Management Studio,Reporting Services等。下面的部分,详细介绍了evaluate的语法。

    相关文章

      网友评论

          本文标题:DAX从入门到精通 3-1-1 介绍表函数

          本文链接:https://www.haomeiwen.com/subject/hqtzqctx.html