select out.a,out.b from out
pivot (count([event]) for [date] in ([Mon],[Tues])) as event_count
group by out.a,out.b
このクエリの実行中に、次のエラーが発生します。
マルチパート識別子 out.a,out.b をバインドできませんでした
select out.a,out.b from out
pivot (count([event]) for [date] in ([Mon],[Tues])) as event_count
group by out.a,out.b
このクエリの実行中に、次のエラーが発生します。
マルチパート識別子 out.a,out.b をバインドできませんでした
句と列GROUP BY
のエイリアスを削除し、次のようにします。out
a
b
select a, b, [Mon], [Tues]
from out
pivot
(
count([event])
for [date] in ([Mon],[Tues])
) as event_count;
注意:テーブル演算子を使用するPIVOT
場合、グループ化要素を明示的に指定する必要はありません。この場合a, b
またはソース テーブルで、クエリおよびソース テーブルから削除する必要があります。PIVOT
オペレーターは、必要な列を自動的に把握します。これらGROUP BY
の列は、date
または集計要素で指定されていない列event
であり、残りはグループ化された列になります。
FROM out
そのため、テーブルout
に 以外の列が含まれている場合は、の代わりに列の名前を明示的にリストする必要がありますa, b, date, event
。この場合、これを行う必要があります。
select a, b, [Mon], [Tues]
from
(
SELECT a, b, "date", "event"
FROM out
) t
pivot
(
count([event])
for [date] in ([Mon],[Tues])
) as event_count;
[月] に out.a を、[火] に out.b を置き換える必要があるようですね。
SELECT [Mon], [Tues]
FROM out
PIVOT (
COUNT([event]) FOR [date] in ([Mon],[Tues])
) AS event_count
あなたの質問についてはよくわかりませんが、これがあなたが探しているものかもしれません
Select a,b, [Mon],[Tues] from
(
Select a,b,date,event from out
group by a,b,date,event
)L
PIVOT
(
count(event) for [date] in ([Mon],[Tues])
) event_count