让我说我有
SalesManagerId, SaleAmount, ProductId
Run Code Online (Sandbox Code Playgroud)
我想总结SaleAmount每个(SalesManagerId,ProductId)并抓住ProductId最大值sum(SaleAmount).
这可能在一个查询中?
例:
1, 100, 1
1, 200, 1
1, 600, 1
1, 400, 2
2, 100, 3
3, 100, 4
3, 100, 4
2, 500, 6
3, 100, 5
Run Code Online (Sandbox Code Playgroud)
结果:
1, 900, 1
2, 500, 6
3, 200, 4
Run Code Online (Sandbox Code Playgroud)
如果您有可用的分析函数,则可以使用RANK()
就像是:
SELECT SalesManagerId, ProductId, Total
FROM (
SELECT SalesManagerId,
ProductId,
SUM(SaleAmount) as Total,
RANK() OVER(PARTITION BY SalesManagerId
ORDER BY SUM(SaleAmount) DESC) as R
FROM <Table name>
GROUP BY SalesManagerId, ProductId) as InnerQuery
WHERE InnerQuery.R = 1
Run Code Online (Sandbox Code Playgroud)