如何列出GoodData中基于两个属性的“不在”过滤器中的记录

如何列出GoodData中基于两个属性的“不在”过滤器中的记录,gooddata,maql,Gooddata,Maql,例如,我有以下表格: __vendors___ _______sales_______ |V_Cod|Name | |S_Cod |Item |Price| |1 |Alan | |2 |apple |10 | |2 |Fred | |2 |sugar |5 | |3 |Alex | |3 |rice |9 | |4 |David | |3 |meat |20 | 我想列出所

例如,我有以下表格:

 __vendors___     _______sales_______
|V_Cod|Name  |   |S_Cod |Item  |Price|
|1    |Alan  |   |2     |apple |10   |
|2    |Fred  |   |2     |sugar |5    |
|3    |Alex  |   |3     |rice  |9    |
|4    |David |   |3     |meat  |20   |
我想列出所有在sales表中没有记录的卖家,但在MAQL编辑器中,以下指标似乎不起作用:

select count(V_Cod) where V_Cod not in (S_Cod)
我还尝试分别对每个代码进行计数,然后用一个代码减去另一个代码,但没有成功。此指标有效,但我需要在报告中查看供应商名称,GoodData不允许我在“如何”选项卡中使用此指标选择供应商名称:

select (select count(V_Cod)) - (select count(S_Cod))

还有另一种方法可以让这个计数起作用吗

这是一种有效的方法。您可以使用内部度量来计算每个供应商的销售额,并将其与IFNULL函数一起使用。然后您可以使用这样的度量来过滤外部度量,这只是一个简单的供应商计数

SELECT COUNT(V_Cod) WHERE (SELECT IFNULL(COUNT(S_Cod), 0) BY V_Cod)=0
目前有必要使用IFNULL,因为没有销售额的供应商不会通过内部度量返回,因此不会满足条件

此度量具有供应商的维度,因此您可以在如何使用时使用V_Cod和名称

旁注-从示例来看,S_Cod似乎不是销售中的连接点,更可能是V_Cod的参考。从性能的角度来看,要计算每个供应商的销售额,最好使用COUNTRecords of sales或COUNTwhatever作为销售的连接点,而不是COUNTS_Cod,因为引擎可以进行简单的计数,而无需进行区分

SELECT COUNT(V_Cod) WHERE (SELECT IFNULL(COUNT(Records of sales), 0) BY V_Cod)=0

这是一种有效的方法。您可以使用内部度量来计算每个供应商的销售额,并将其与IFNULL函数一起使用。然后您可以使用这样的度量来过滤外部度量,这只是一个简单的供应商计数

SELECT COUNT(V_Cod) WHERE (SELECT IFNULL(COUNT(S_Cod), 0) BY V_Cod)=0
目前有必要使用IFNULL,因为没有销售额的供应商不会通过内部度量返回,因此不会满足条件

此度量具有供应商的维度,因此您可以在如何使用时使用V_Cod和名称

旁注-从示例来看,S_Cod似乎不是销售中的连接点,更可能是V_Cod的参考。从性能的角度来看,要计算每个供应商的销售额,最好使用COUNTRecords of sales或COUNTwhatever作为销售的连接点,而不是COUNTS_Cod,因为引擎可以进行简单的计数,而无需进行区分

SELECT COUNT(V_Cod) WHERE (SELECT IFNULL(COUNT(Records of sales), 0) BY V_Cod)=0

第一个代码工作正常。谢谢你的旁注,我不知道这样的事情是可能的。干得好!第一个代码工作正常。谢谢你的旁注,我不知道这样的事情是可能的。干得好!