11

ここで答えられているようなクエリを実行しようとしています 。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

しかし、それを試してみると、エラーメッセージが表示されます

"message": "Unrecognized function CASE".

(SQLチュートリアルから)もっと簡単に試してみると、

SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;

私はそれから得る

"message": "searched case expression not supported at: 1.8 - 1.65".

私は暗闇の中で野生の刺し傷を取り、SQL CASE関数がBigQueryで全体的にサポートされていないことを前提としていますが、必要なレポートクエリに基づいて大きな違いが生じるため、間違っていることを願っています走る。

4

2 に答える 2

31

2013年の更新:BigQueryはCASEをサポートしています:

SELECT CASE WHEN x=1 THEN 'one' WHEN x=2 THEN 'two' ELSE 'more' END 
FROM (SELECT 1 AS x) 

'one'
于 2013-11-22T01:56:03.437 に答える
6

BigQueryでこれを行う方法は、if(test、then、else)関数を使用することです。例: SELECT sum(if (revision_id > 10, num_characters, 0)) FROM [publicdata:samples.wikipedia] または2番目のクエリと同様:

SELECT if (revision_id == 1, 'one', (if (revision_id == 2, 'two', 'more'))) FROM [publicdata:samples.wikipedia] limit 100

于 2012-07-25T16:19:27.987 に答える