我正在尝试在 Sisense 中实现一个简单的过滤器,但我无法弄清楚。
我的数据存储在 PostgresQL 数据库中。一个最小的示例如下所示:
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
并将其salary
作为 Sisense 中的值。
现在有两种情况我要过滤:
1) 选择所有first_name
存在姓氏“Smith”的人
first_name
=> 在 Sisense 中很容易,只需在<->上创建关系first_name
并过滤“Smith”
我们的结果集是 {Jack, John, Mary} 和他们各自的薪水。
2) 选择所有first_name
不被姓“Smith”的人共享的s。这是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)。
我一定遗漏了一些明显的东西。有任何想法吗?
非常感谢!