私は2つの列のテーブルを持っています:ブックとトピック、そして1つのトピックはそれを参照する複数のブックとその逆の詩を持つことができます。
私は発生している別個の本の数を数え、それをピボットに適用しようとしています。次のコード構造は私が今までに持っているものです:
With dataSource
as (
select book_id, topic_id
FROM BKINFO.BookTopics
)
select
[CS] as 'CmpSci'
,[PGM] + [NET] + [VB] as 'CmpPgm'
,[DB] as 'DB'
,[SQL]+[MYSQL]+[ORA]+[SSRV] as 'SQL'
, [XML]as 'XML'
, [SCI] as 'Science'
, [POE] + [FCT] as 'Lit'
from dataSource
pivot(
count(book_id)
for topic_id
in([CS],[PGM],[NET],[VB],[DB],[SQL],[MYSQL],[ORA],[SSRV], [XML],
[SCI], [POE], [FCT])
)tblPivot
ピボットステートメントとその他の選択肢は、質問の要件を満たすためにあります。 (オンラインコースの場合)データ出力は次のようになります。
CmpSci CmpPgm DB SQL XML Science Lit
----------- ----------- ----------- ----------- ----------- ----------- -----------
0 28 9 40 2 10 3
ここでは何が欠けていますか?私はこれを理解しようとするのに約4時間を費やしてきました。
ありがとうございます!
現在入手している出力は何ですか? また、異なる本を数える必要がある場合は、count:distinct book_idというように指定する必要があります。 – Serguei
何が問題だと思われますか? –
私が得ているデータ出力は、私が上に投稿したものです。私はdistinctを追加しようとしましたが、ピボットステートメントの内部に置くとエラーが発生します。 Select句にdistinctを追加すると、両方の列が区別されるため、何も行われません。 –