

あるテーブルを縦持ちから横持ちに変換(pivot)しようとしたところ、  
カラム数が一定数を超えるとクエリが実行できなくなってしまいました。  
構文エラーやエラーチェックなどはでず、単に「クエリが実行できません」というトーストがでます。

具体的には以下のようなクエリになります。

[code]

    with sub as (
     select
       prime
       ,number
       ,sum(prime * number) as multi
     from
       unnest([1,2,3,5,7,11,13,17]) as prime,unnest([1,2,3,4,5]) as number
     group by
       prime, number
    )
    select
     prime
     , number
     , sum(if(multi= 1, 1, 0)) as cnt_total_1
     , sum(if(multi= 2, 1, 0)) as cnt_total_2
     , sum(if(multi= 3, 1, 0)) as cnt_total_3
     , sum(if(multi= 4, 1, 0)) as cnt_total_4
     // ...
     , sum(if(multi=56, 1, 0)) as cnt_total_56
     , sum(if(multi=57, 1, 0)) as cnt_total_57
    from
     sub
    group by
     prime, number
    order by
     prime, number
    
[/code]

sum(if(...))のカラムが、50前後になると実行できなくなります。

この問題を回避する方法はあるのでしょうか？


CC BY-SA 4.0
2019-11-07T05:52:36.017
60314
2019-11-07T05:52:36.017
36520
question
google-bigquery
sum(if(...))の数が多いとWebUIからのクエリ実行ができない