以下はBigQuery用です!
注意:出力列名に関する期待は正しくありません!
列名を数字で始めることはできません-したがって、以下の例では、1、2、および3の代わりにid_1、id_2、およびid_3を使用します
SELECT
SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,
SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,
SUM(CASE WHEN id = 3 THEN 1 END) AS id_3
FROM YourTable
上記の例では、IDが事前にわかっていて、IDが非常に少ないことを前提としているため、IDごとにSUM(...)を使用して手動で数行を書き込むことは大したことではありません。
そうでない場合は、以下のクエリを実行することにより、最初にプログラムで上記のクエリを生成できます
SELECT 'SELECT ' +
GROUP_CONCAT_UNQUOTED(
'SUM(CASE WHEN id = ' + STRING(id) + ' THEN 1 END) AS id_' + STRING(id)
)
+ ' FROM YourTable'
FROM (
SELECT id FROM (
SELECT * FROM YourTable GROUP BY id ORDER BY id
)
結果として、以下のような文字列が得られます
SELECT SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,SUM(CASE WHEN id = 3 THEN 1 END) AS id_3 FROM YourTable
だから、今それをコピーしてクエリエディタに貼り付けて実行するだけです
ここで同様の例を見ることができます-