我有一个包含产品列表的表格,架构为:
Product, Warehouse, Supplier, Order Quantity
我想要做的是为每个供应商选择订单数量最多的仓库。
表数据:
Cornflakes, WH1, Kellogs, 10
Cornflakes, WH2, Kellogs, 5
Cornflakes, WH3, Kellogs, 0
Crunchy, WH1, Cadbury, 20
Crunchy, WH2, Cadbury, 10
Mars, WH1, Cadbury. 56
Mars, WH4, Cadbury, 8
我认为这里有足够的信息可以提供简单的答案,如果没有,请在评论中请求我澄清而不是downvote,我会很快编辑问题。
示例输出:
Kellogs, WH1
Cadbury, WH1
仓库编号将是这一个,因为它为该供应商下的每个产品订购的总数量最多。
答案 0 :(得分:1)
MS SQL 2008+
SELECT Supplier, Warehouse
FROM (
SELECT Warehouse, Supplier, rn=ROW_NUMBER() OVER (PARTITION BY Supplier ORDER BY SUM([Order Quantity]) DESC)
FROM t
GROUP BY Warehouse, Supplier
) tt
WHERE rn=1
答案 1 :(得分:0)
试试这个:
select a.supplier,a.warehouse,a.max(Order Quantity) from
(select supplier,warehouse,sum(Order Quantity) as quantity from products
group by supplier,warehouse)a
group by a.supplier,a.warehouse