很简单,HANA它作为一个数据库。
肯定是要弄JOIN的。
那有哪些类型呢?
文章目录
在弄join之前,得知道基数。
就是1:1,1:N , N:1, M:N 在你要join表之前,你要知道你要join的对象在不同的表里是个什么对应关系,如果你搞错了,那。。。
反正这是最基本的。如果是个M:N的表,你给join到一起还1:1这就很,,嗯,, 让计算机摸不着头脑。
JOIN的种类
Inner
你有我有一起有。
拿表来举例:
1:1
1:n 我有你没有,那算了,我也不要了。
同时也有N:1的情况,就是右表的一行可以有多行👈表与之对应。
Referential
这个呢,是HANA新的连接方式,为了提高性能的。
啥意思呢?
它的解释是就是inner join with some characteristics 嗯,蜜汁解释。
前提条件是,你的central table定义了referential integrity 参照完整性.嗯,说人话就是你这个是星型结构模型,中间表是事实表。那么事实表之外围绕维度表。
你这个事实表的主键字段和维度表之间的维度外键用参照类型join。它这个默认就是个参照类型join。。基数是1:n。
如果我要查找的数涉及到所有的表,而且参照完整性被执行,我就用inner join。
如果我只取其中一个或部分维度表,那就用left outer join。
简而言之,如果表都用,那我就inner join。
如果不都用,那我就left outer join。这是它自动选择的。
这个场景是建一个有star join的calculation view,在有底层projection 也就是事实表之后,在star join里添加的维度表和projection里面的事实表连接时,连接键默认用referential。就是cube类型,有星型连接。
Left outer
就看谁是左表,总是显示左表的条目数。
Right outer
就是把左表与右表的方位转换下。显示的是右表的条目数。
Full outer
对,就是个union,最大条目数M+N左表加右表条目
Text
Special
Temporal
NODE的种类
Projection
Calculated Column
可以基于原来的列加一层计算,也可以独立用来展示静态的描述值,设置flag
parameters
filters
Join
设置join的方式啥的。
join层也有calculation column和filters parameters
star join
calculation column
restricted column 限制值的属性,比如限制一个gross profit只在哪个国家。
parameter
filter