sql - 如何为两个 tables 中的每个 group select 最频繁的 value?

我有两个 tables 我想 select 为每个 shippingType 订购最多(数量)的产品(见结果 table)

装运 table

id shipmentTyp amount productID
1 A 3 1
2 S 7 1
3 A 12 3
4 T 15 2
5 T 7 1
6 T 4 3
7 A 1 3
8 S 78 2

产品 table

productID productName
1 P1
2 P2
3 P3

结果 table

shipmentType productName amount
A P3 12
S P2 78
T P2 15

回答1

对我来说,这似乎是一个简单的 ROW_NUMBER() 问题 -

SELECT 
    SH.shipmentType, P.productName, SH.amount
FROM 
    (SELECT 
         shipmentType, amount, productID,
         ROW_NUMBER() OVER (PARTITION BY shipmentType ORDER BY amount DESC) RN
     FROM 
         shipment) SH
JOIN 
    Products P ON SH.productID = P.productID
WHERE 
    RN = 1;

相似文章

最新文章