イベントが少なければ、次のようなイベントがあります - 異なるイベントを持つ行をいくつでも作成する必要があります。予想されるイベントの数が一定であれば - あなたはいつも簡単に一度、このようなクエリを構築し、あなたがよりダイナミックな何かが必要な場合
SELECT
userID,
SUM(CASE WHEN event = 'event1' THEN [count] ELSE 0 END) AS event1,
SUM(CASE WHEN event = 'event2' THEN [count] ELSE 0 END) AS event2,
SUM(CASE WHEN event = 'event3' THEN [count] ELSE 0 END) AS event3,
SUM(CASE WHEN event = 'event4' THEN [count] ELSE 0 END) AS event4
FROM YourTable
GROUP BY userId
それを使用することができます - 構築するために照会し、あなたの場合には非常によく似た例を見てhttps://stackoverflow.com/a/36623258/5221944
を動的SQLは
SELECT 'SELECT userId, ' +
GROUP_CONCAT_UNQUOTED(
'SUM(IF(event="'+event+'",[count],0)) as [d_'+REPLACE(event,'/','_')+']'
)
+ ' FROM YourTable GROUP BY userId ORDER BY userId'
FROM (
SELECT event FROM YourTable GROUP BY event ORDER BY event
)
線の下の注
'SUM(IF(event="'+event+'",[count],0)) as [d_'+REPLACE(event,'/','_')+']'
以下のようになります。
それはあなたにも名前がフィールド/列の要件に準拠していますを確認しますが、あなた追いついたが、いつもなどイベント1、イベント2、のようになります場合は、この行を簡素化し、の
'SUM(IF(event = "' + event + '", [count], 0)) as ' + event
可能な複製を使用することができます
に名前を付ける[旋回させる方法Big Queryのテーブル](http://stackoverflow.com/questions/26272514/how-to-pivot-table-in-big-query) – JRLambert
たとえば、50のユニークなイベントがあります。どのようにクエリを検索することができますか? – ivan