我正在尝试为该问题编写一个 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';
但这会导致 231410 个产品,而数据库仅包含 1000DISTINCT(product.id)
个。逻辑上使用会导致计数为 1000。
我不知道我做错了什么。