How to use IF Statement in BigQuery SQL

Problem: We have a Sales table in BigQuery and item_num column contains values 1, -1 and 0. You want to count how many cases you have for each value.

\n\n

Solution 1:

SELECT \n  SUM(IF(item_num > 0, 1, 0)) AS buysplus,\n  SUM(IF(item_num < 0, 1, 0)) AS buysminus,\n  SUM(IF(item_num = 0, 1, 0)) AS buyszero\nFROM MyShop.Sales\n
\n\n

or even less verbose version of it:

Solution 2:

\n\n
SELECT \n  SUM(item_num > 0) AS buysplus,\n  SUM(item_num < 0) AS buysminus,\n  SUM(item_num = 0) AS buyszero\nFROM MyShop.Sales\n
\n\n

this will give you result like below

\n\n
buysplus    buysminus   buyszero     \n4           2           3\n
\n\n

Solution 3:

Another option would be a transposed version of it

\n\n
SELECT \n  item_num AS buys,\n  COUNT(1) AS volume\nFROM MyShop.Sales\nGROUP BY 1  \n
\n\n

with the result as below

\n\n
 buys        volume  \n 0          3    \n 1          4    \n-1          2    \n

victor

posted on

Enjoy great content like this and a lot more !

Signup for a free account to write a post / comment / upvote posts. Its simple and takes less than 5 seconds