## 三、M函数
1、隐式和显示的差异在于字段名的字段类型的显示:隐式的数据类型由下面的记录决定,
(1)例 例1 :隐式字段表
let
Source = #table(
{\"OrderID\", \"CustomerID\", \"Item\", \"Price\"},
{
{1, 1, \"Fishing rod\", 100.00},
{2, 1, \"1 lb. worms\", 5.00}
})
in Source
(2)例 例2 :显示字段表
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
2、建表取什么值,由in source后面的大括号内容决定
例 例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}**
3、M函数的计算例 例2 :复合嵌套记录内元素间的引用计算:最终值为2100+2500=4600
[
Sales =
{
[
Year = 2007,
FirstHalf = 1000,
SecondHalf = 1100,
**Total = FirstHalf + SecondHalf**
],
[
Year = 2008,
FirstHalf = 1200,
SecondHalf = 1300,
**Total = FirstHalf + SecondHalf**
]
},
#\"Total Sales\" = Sales{0}[Total] + Sales{1}[Total]
]
4、大括{}号表示表格,中括号[]表示记录
let
源 = [
订单id = \"b\",
客户id = \"bb\",
订单金额 = 200,
客户表 = #table(
{\"客户id\",\"客户名称\"},
{
{\"bb\",\"王二\"}
}
)
]
in
源
多维数据建模、数学建模
5、变量类型:一般对名义型、有序型变量进行观测,对连续型变量进行汇总
(1)名义型:变量之间没有关系的变量;数据类型一般为文本,无法作为度量值,作为维度来用(汇总角色),可以为主键
(2)有序型:变量之间有关系,但不连续的变量,例如成绩水平、健康状况;数据类型一般为文本、数值(很少用),作为维度来用(汇总角色),不可以为主键
(3)连续型:变量之间有关系,而且连续的变量,例如身高、体重、销量,数据类型一般为数值,作为度量值来用(汇总角色),不可以为主键
6、链接规则说明: 避免使用类型2的方法:不要跨表取字段;不要一表出度量
(1)多表出值,不管是单向还是双向连接,都是T1
(2)一表出值,双向就是T2,单向就是错的;跨表取字段也属于T2


7、连表思路
(1) 将需要用的表直接连接在一起,创建统一的多维环境
(2) 将需要用的表先能合并的合并,减少表的个数,不能合并的表再连接成一个多维环境