让我先举一个例子。假设我有一个缓慢变化的维度表的以下片段,其中包含有关客户的信息:
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中,然后我可以从仪表板web应用程序访问它。
我的问题是:我如何创建一个小部件,向我展示所有从国家A转移到B国家的客户?(如果A是瑞士,B是德国,约翰就会出现在报告中)
发布于 2017-10-04 10:56:41
假设(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';https://stackoverflow.com/questions/46556945
复制相似问题