首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用否定过滤Sisense中的数据透视表

使用否定过滤Sisense中的数据透视表
EN

Stack Overflow用户
提问于 2020-05-27 00:02:59
回答 1查看 187关注 0票数 0

我正试着在Sisense中实现一个简单的过滤器,但是我搞不懂。

我的数据存储在PostgresQL DB中。一个最小的示例如下所示:

代码语言:javascript
复制
CREATE TABLE fact_table (
    first_name text,
    salary integer
);

INSERT INTO fact_table VALUES ('John', 100), ('Jack', 200), ('Mary', 300), ('Klaus', 400);

CREATE TABLE dim_table (
    first_name text,
    last_name text    
);

INSERT INTO dim_table VALUES ('John', 'Smith'), ('Jack', 'Smith'), ('John', 'Jackson'), ('Mary', 'Smith'), ('Klaus', 'Jackson');

我想创建一个透视表,在行中使用first_name,在Sisense中使用salary作为值。

现在我要过滤两个场景:

1)选择所有first_name,其中存在姓'Smith‘的人

在Sisense中=>很简单,只需在first_name <-> first_name上创建一个关系并过滤'Smith‘即可。

我们的结果集是{Jack,John,Mary}和他们各自的薪水。

2)选择all first_names,这不会被姓'Smith‘的人共享。这是1)的否定。我们预期的结果集{Klaus}。

我不知道该怎么做。这在SQL中很简单:SELECT * FROM fact_table WHERE first_name NOT IN (SELECT first_name FROM dim_table WHERE last_name = 'Smith');

我还没有在Sisense中找到任何合适的选项。如果我创建一个列表过滤器并取消选择Smith,我将从我的dim_table中获得所有非Smith,这在逻辑上是不同的(并且返回John而不是Klaus)。

我肯定漏掉了什么明显的东西。有什么想法吗?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 22:32:56

我认为你的第一个和第二个过滤器场景都可以通过弹性立方中的自定义SQL来实现。您需要在两个表上执行左连接,并从事实中获取每一行。在你的first_name过滤器中,你可以取消选择first_name作为"Smith“,但是选择null值来显示"Klaus”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62026421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档