每种产品可用的供应商数量,这些顶级产品所在的PurchaseOrderID数量

时间:2016-02-25 09:29:16

标签: mysql adventureworks

根据每种产品可用的供应商数量编写十大产品。

此外,显示存在这些顶级产品的PurchaseOrderID数量。

select 
    top 10 pod.productid,
    count(vendorid)as no_of_vendors,
    count(poh.purchaseorderid)as no_of_purorder 
from purchasing.purchaseorderdetail pod join purchasing.purchaseorderheader poh  on
       pod.purchaseorderid=poh.purchaseorderid 
group by pod.productid order by count(vendorid) desc

我无法获得正确的输出。我使用冒险作品20012.请为此查询提出答案。

1 个答案:

答案 0 :(得分:0)

select 
    top 10 pod.productid,
    count(DISTINCT(vendorid))as no_of_vendors,
    count(poh.purchaseorderid)as no_of_purorder 
from purchasing.purchaseorderdetail pod join purchasing.purchaseorderheader poh  on
       pod.purchaseorderid=poh.purchaseorderid 
group by pod.productid order by count(DISTINCT(vendorid)) desc, count(poh.purchaseorderid) DESC

如果没有DISTINCT,它只计算与采购订单数量相同的东西。我不认为这里的数据很重要,但我还要指出,如果某个商品在同一采购订单上出现两次,那么如果没有使用DISTINCT,它也会重复计算。顺便说一句,我也假设因为有这么多产品只有三家供应商,你希望它按照该产品的采购订单数进一步排名。