2017-06-19 71 views
0

例如,「NOT IN」過濾器,我有這些表:如何列出記錄與基於兩個atributes在GoodData

__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 | 

我想列出所有沒有在記錄的賣家銷售表,但在MAQL編輯器,以下數據似乎不工作:

select count(V_Cod) where V_Cod not in (S_Cod) 

我也試圖讓每個碼數分別再減去一個與其他的,但是事實並非如此工作(這個指標是有效的,但我需要在報告中看到供應商的名稱,GoodData不讓我選擇t使用此度量標準的HOW選項卡中的vendor_name):

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

還有另一種方法可以使此計數有效嗎?

回答

3

這是工作方法。您可以使用內部度量來統計每個供應商的銷售額,並將其與IFNULL函數一起使用。然後,您可以使用此類度量來過濾外部度量標準,這只是供應商的簡單計數。

SELECT COUNT(V_Cod) WHERE (SELECT IFNULL(COUNT(S_Cod), 0) BY V_Cod)=0 

目前有必要使用IFNULL,因爲沒有銷售的供應商不會以內部度量返回,因此不滿足條件。

該指標具有供應商的維度,因此您可以在HOW中使用V_Cod和Name。

備註 - 從示例中看來,S_Cod似乎並不是Sales中的連接點(更可能它看起來像對V_Cod的引用)。從性能角度來看,要計算每個供應商的銷售數量,使用COUNT(銷售記錄)或COUNT(無論是銷售連接點)而不是COUNT(S_Cod)可能會更好,因爲引擎可以執行簡單計數。

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

第一個代碼正常工作。謝謝你的附註,我不知道這樣的事情是可能的。幹得好! –