各travel_modeの予約の月合計を示すピボットテーブルビューを作成したいとします。pgadminの2つのテーブルを結合してピボットテーブルビューを作成したい
表1の予約 - PROVIDER_ID、travel_mode
ピボットテーブル機能とクロス集計関数は、この演習を行うために使用してはならない - タイムスタンプ、予約は、 表2プロバイダをPROVIDER_ID。私はジョインまたは他の機能を使用したい。私は私が実行しようとしていますこのクエリの問題を理解していない
、それは私があなたのクエリを分析した場合、私はこれはあなたが何であるかと思い
SELECT c.month, train.amount, bus.amount, air.amount
FROM (SELECT x.month
FROM (SELECT to_char(date_,'month') as month, travel_mode, sum(bookings) as amount
from bookings as b
join providers as p
on b.provider_id=p.provider_id
group by month, travel_mode) x
group by x.month
) c
JOIN x train ON c.month = train.month AND train.amount = 'train'
JOIN x bus ON c.month = bus.month AND bus.amount = 'bus'
JOIN x air ON c.month = air.month AND air.amount = 'air'
;
このタグはpostgresqlにする必要がありますか? –
おそらくテーブルxが存在せず、クエリで作成されたサブクエリには参加できません(mysqlでは、postgresqlについては考えられません)。サンプルデータと期待される出力を提供できれば、誰かが助けることができると確信しています。 BTWのmysqlとPostgresqlは異なっていますが、あなたが解決したいSQL方言にのみタグを付けるべきです。 –
タグを編集しました:) テーブルxを宣言して結合に使用できるようにするにはどうすればよいですか? –