この問題に対する PostgreSQL クエリを作成しようとしています。
2011 年に購入された製品の数は? (2011年に購入したということは、注文の説明が2011年に「完了」していることを意味します)。
これまでのところ、次のクエリがあります。
SELECT
COUNT(product.id)
FROM
product
JOIN orderitem ON
productid = product.id
JOIN "order" ON
"order".id = orderitem.orderid AND
EXTRACT(year FROM orderplaced) = 2011
JOIN orderstatus ON
orderstatus.orderid = "order".id
JOIN orderstatusdescription ON
orderstatusdescription.id = orderstatusdescriptionid AND
orderstatusdescription.description = 'Completed';
ただし、データベースには 1000 個しか含まれていないのに、これにより 231410 個の製品が生成されます。logically を使用DISTINCT(product.id)
すると、カウントは 1000 個になります。
何が間違っているのかわかりません。