2016-04-12 1 views
1

私はBigQueryで作業しています。Xの値が0でない行とYの値がゼロの行を検索するSQL?

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

は私が0121上の非ゼロの支出とのすべての組織を見つけたい、と0122上のゼロ支出:私はこのようになりますいくつかのデータを持っています。これを単一のクエリで行うことはできますか?

これが集約クエリであるかどうかはわかりません。

答えて

4

これを試してみてください:

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

感謝を。あなたはそれをどのような種類のクエリと呼んでいますか?それにはHAVING以外の名前がありますか? (私は次回のGoogleのために何を知っているのですか?) – Richard

+0

@リチャードこれは*条件付き集計*と呼ばれ、標準のANSI SQL構文です。 –

+0

ありがとうございます! – Richard

関連する問題