2016-04-12 11 views
1

BigQuery'de çalışıyorum.SQL, X için sıfır olmayan bir değere ve Y için bir sıfır değerine sahip satırlar bulmak için?

org  code spend 
A81001 0121 33.4 
A81002 0121 45.2 
A81003 0121 7.3 
A81001 0122 10.1 
A81002 0122 10.1 

Ben 0121 üzerinde sıfırdan farklı harcama ile tüm organizasyonları bulmak istiyoruz ve 0122 üzerinde sıfır harcama: Şöyle bazı veriler var. Bunu tek bir sorguda yapabilir miyim?

Bunun bir toplu sorgu olup olmadığından emin değilim.

cevap

4

bu deneyin:

SELECT org 
FROM mytable 
WHERE code IN ('0121', '0122') 
GROUP BY org 
HAVING SUM(CASE WHEN code = '0121' THEN spend ELSE 0 END) <> 0 AND 
     SUM(CASE WHEN code = '0122' THEN spend ELSE 0 END) = 0 
+0

teşekkür ederiz. Ne tür bir sorgu olarak adlandırırdınız, 'HAVING' dışında bir ismi var mı? (Bu yüzden bir sonraki sefer Google'a ne yapacağımı biliyorum?) – Richard

+0

@Richard Buna * koşullu toplama * ve standart ANSI SQL sözdizimi denir. –

+0

çok teşekkür ederim! – Richard

İlgili konular