I'm trying to run a query like what's answered here, SQL Selecting multiple sums?
SELECT SUM(CASE WHEN order_date >= '01/01/09' THEN quantity ELSE 0 END) AS items_sold_since_date,
SUM(quantity) AS items_sold_total,
product_ID
FROM Sales
GROUP BY product_ID
But if I try that, I get the error message
"message": "Unrecognized function CASE".
If I try a much more simple (from an sql tutorial),
SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
I then get
"message": "searched case expression not supported at: 1.8 - 1.65".
I'm going to take a wild stab in the dark and assume that the SQL CASE function is overall just not supported on BigQuery, but really hope that I'm wrong because it makes a huge bit of difference based on the report queries I want to run.
2013 update: BigQuery supports CASE:
SELECT CASE WHEN x=1 THEN 'one' WHEN x=2 THEN 'two' ELSE 'more' END
FROM (SELECT 1 AS x)
'one'
The way to do this in BigQuery is to use the if(test,then,else) function.
For example:
SELECT sum(if (revision_id > 10, num_characters, 0)) FROM [publicdata:samples.wikipedia]
or similar to your second query:
SELECT if (revision_id == 1, 'one', (if (revision_id == 2, 'two', 'more'))) FROM [publicdata:samples.wikipedia] limit 100
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With