让我先举一个例子。假设我有一个缓慢变化的维度表的以下片段,其中包含有关客户的信息:
key id name country valid_from valid_to version
1 abcxyz John Switzerland 2012/01/01 2014/01/01 1
20 abcxyz John Germany 2014/01/01 2017/01/01 2
...
正如您所看到的,客户信息中的每个更改都会记录为具有相同ID的表中的新条目,但版本增加1( key 字段是主要的表的关键)
然后将此表导入Sisense ElastiCube,然后我可以从Dashboard Web应用程序访问它。
我的问题是:如何创建一个小部件,向我展示从A国迁移到B国的所有客户? (如果A是瑞士,B是德国,John会出现在报告中)
答案 0 :(得分:0)
假设(id,version)是唯一的并且版本序列中没有间隙,此查询将为您提供从一个国家/地区移动到另一个国家/地区的客户。
请注意,不会为您提供最新版本的客户记录,而是提供更改时记录的版本。约翰可能会在版本3中居住在意大利,但查询仍会给你德国纪录。
select a.key as moved_from_key
,b.key as moved_to_key
from customers a
join customers b on(
b.id = a.id
and b.version = a.version + 1 -- The version following A
)
where a.country = 'Switzerland'
and b.country = 'Germany';