热线电话:13121318867

登录
2020-06-12 阅读量: 952
Power BI 数据结构


结构化数据 – 列表

列表(List): 列表是扩在花括号中的一组数据,列表中每个数据都有属于自己的序号以便自己能够被检 索到,列表中的数据序号从0开始按照排列顺序依次整数递增,大列表内还可以嵌套子列表、 记录等。花括号除了用来括起列表内的所有数据还用来指定列表内数据的序号,通过指定数 据序号可以从列表内找到并获取所需的数据值。


结构化数据 – 记录

记录(Record): 记录用来定义字段和给字段赋值,一个字段由字段名以及字段内的值组成,字段名是唯一 的文本值,是字段的标识符。字段名可以不用引号引用,字段名有两种表达形式: > 不加""的表达形式、例如OrderID > 加#和""的表达形式、例如#"Today's data is:" 记录中的内容写在[]括号内,[]括号同样用于在记录中取特定字段的值。

例1:定义字以及显示记录内所有内容
let Source =   
    [  
        OrderID = 1,   
        #"CustomerID" = 1,   
        Item = "Fishing rod",   
        Price = 100.00  
    ]  
in Source

例2:定义字以及显示记录内[Item]字段的值 
let Source =   
    [  
        OrderID = 1,   
        #"CustomerID" = 1,   
        Item = "Fishing rod",   
        Price = 100.00 
    ]  
in Source[#"CustomerID"] //equals 1



结构化数据 – 表(1)

表(Table): 表是由行列数据构成的,可以使用隐式或显示方式定义字段(列)的数据类型。使用 #table建表时,可以使用列表或者记录来定义列名,并使用嵌套列表来定义表中的数据,嵌 套列表的大列表内包含所有定义单行用的子列表,而每个子列表则用来定义一行数据。花括 号{}可以用来索引查找指定行的数据。

例1:隐式字段表 
let  
Source = #table(   
{"OrderID", "CustomerID", "Item", "Price"},   
    {   
        {1, 1, "Fishing rod", 100.00},   
        {2, 1, "1 lb. worms", 5.00}   //哪怕只插入一条记录,这里也要有两个大括号
    })  
in  Source  

例2:显示字段表 
let  
Source = #table(  
type table [OrderID = number, CustomerID = number, Item = text, Price = number],   //type table关键字不能省略
    {   
        {1, 1, "Fishing rod", 100.00},   
        {2, 1, "1 lb. worms", 5.00}   
    }  )  
in  Source  


结构化数据 – 表(2)

表(Table): 表是由行列数据构成的,可以使用隐式或显示方式定义字段(列)的数据类型。使用 #table建表时,可以使用列表或者记录来定义列名,并使用嵌套列表来定义表中的数据,嵌 套列表的大列表内包含所有定义单行用的子列表,而每个子列表则用来定义一行数据。花括 号{}可以用来索引查找指定行的数据。

例3:建表后取表中第一行数据 
let  
    Source = #table(  
    type table [OrderID = number, CustomerID = number, Item = text, Price = number],   
        {   
            {1, 1, "Fishing rod", 100.00},   
            {2, 1, "1 lb. worms", 5.00}   
        }  
    )  
in  Source{1}  //取出来的是记录



其他数据结构(1)

数据结构中可以包含任意M值

例1:复合数据结构的列表 
let  
Source =   
    {  
        1,    //数值 
        "Bob",   //文本 
        DateTime.ToText(DateTime.LocalNow(), "yyyy-MMdd"),   //函数值 
        [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0]   //记录 
    }  
in   Source

1例2:包含子列表的记录 
let  
Source = 
[
    CustomerID = 1, Name = "Bob", Phone = "1234567", Orders =   
        {  
            [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0],  
            [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0]  
        }
]  
in   Source









11.6032
2
关注作者
收藏
评论(0)

发表评论

暂无数据