bigqueryのjoin eachとgroup each by
join eachを使う時にサブクエリの中でgroup byが使えないと書きました
しかし、これの解決策を教えてもらいました
それがgroup each by
公式ドキュメント見ても、いまいち使いどころが分かっていなかった、これ
join eachとセットで使うのが基本なのかな・・・?
前回のsqlをgroup each byで書くとこんな感じ
SELECT p1.pokemonName FROM [pokemonms.Pokemon] p1
JOIN EACH
(SELECT worldGuideNo, pokemonName
FROM [pokemonms.Pokemon]
GROUP EACH BY worldGuideNo,pokemonName
) p2 ON p1.worldGuideNo = p2.worldGuideNo
group byがgroup each byってなっただけですね!
ということで、以下のようです
join eachで右側のテーブルにサブクエリを使い かつ サブクエリにgroup byがある場合、group each byを使う
これで、small joinで収まりきらなくなったものをlarge joinにする時も、ちょっと修正するだけでいけますね