1
我有一張名爲spending
的表(實際上在BigQuery中,雖然我認爲這不一定與此問題相關),大約有2.9GB和1900萬行。如何運行子查詢將表分成兩組?
的數據結構是這樣的:
product,org,spend,to_include,proportion_overseas
----------------------------------
SK001,03V,"Yes",0.1
SK002,03V,2.4,"Yes",0.1
SK001,O3T,66.1,"No",0.47
SK002,03T,87.1,"No",0.47
SK001,04C,16.1,"Yes",0
SK002,04C,27.1,"Yes",0
...
有關信息,它也會稍有去歸一化,在to_include
和proportion_overseas
實際上每個組織的性質。
現在我要工作了,爲每個產品:
- 總量,所有的組織與用在該產品沒有海外支出,並
- 總量與非零的所有組織海外花費在該產品上。
我也只想在這個計算中只包括行,其中to_include='Yes'
。
我不確定在SQL中執行此操作的最佳方法是什麼。我不介意我是否有兩張桌子或一張桌子。
我知道如何通過代碼來獲取所有開支,爲所有相關行:
SELECT product, SUM(spend)
FROM spending
WHERE to_include='Yes'
GROUP BY product;
但我不知道是怎麼來的每一行分成兩組:一組,其中proportion_overseas=0
和一組其中proportion_overseas>0
。
我不認爲'子查詢'是正確的術語,所以我真的不知道該給Google做什麼!
輝煌,謝謝! – Richard