sea*_*ers 7 sql case google-bigquery
我正在尝试运行一个像这里所回答的查询, SQL选择多个总和?
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
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试,我会收到错误消息
"message": "Unrecognized function CASE".
Run Code Online (Sandbox Code Playgroud)
如果我尝试更简单(来自sql教程),
SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Run Code Online (Sandbox Code Playgroud)
然后我得到了
"message": "searched case expression not supported at: 1.8 - 1.65".
Run Code Online (Sandbox Code Playgroud)
我将在黑暗中采取疯狂的刺,并假设SQL CASE函数总体上不支持BigQuery,但我真的希望我错了,因为它根据我想要的报告查询产生了很大的不同跑步.
Fel*_*ffa 24
2013更新:BigQuery支持CASE:
SELECT CASE WHEN x=1 THEN 'one' WHEN x=2 THEN 'two' ELSE 'more' END
FROM (SELECT 1 AS x)
'one'
Run Code Online (Sandbox Code Playgroud)
在BigQuery中执行此操作的方法是使用if(test,then,else)函数.例如:
SELECT sum(if (revision_id > 10, num_characters, 0)) FROM [publicdata:samples.wikipedia]
或类似于您的第二个查询:
SELECT if (revision_id == 1, 'one', (if (revision_id == 2, 'two', 'more'))) FROM [publicdata:samples.wikipedia] limit 100
归档时间: |
|
查看次数: |
36665 次 |
最近记录: |