顧客とアイテムの2つのテーブルをクロス結合しようとしているので、アイテムごとのレポートで顧客ごとの売上を作成できます。私は2000の顧客と2000のアイテムを持っています。
SELECT customer_name FROM customers; --Takes 100ms
SELECT item_number FROM items; --Takes 50ms
SELECT customer_name, item_number FROM customers CROSS JOIN items; Takes 200000ms
これが400万行であることは知っていますが、これをさらに高速に実行することは可能ですか?最終的には、次のような販売テーブルに参加したいと思います。
SELECT customer_name, item_number, sales_total FROM customers CROSS JOIN items LEFT JOIN sales ON (customer.customer_name = sales.customer_name, item.item_number=sales.item_number);
販売テーブルには明らかにすべての顧客またはすべてのアイテムが含まれるわけではないため、ここでの目標は、すべての顧客とすべてのアイテムを、販売されたものと販売されなかったものとともに表示するレポートを作成することです。
PostgreSQL8.4を使用しています