如何通过condition max left join and select,然后选择另一个字段?

How to left join and select by condition max, then choose another field?

数据库:SAP HANA

如何通过条件max左连接和select,然后选择另一个字段?

一个

user no qty
A 10 20
A 11 30
B 12 40
B 13 10

B

id user
1 A
2 B

预期结果

id user no
1 A 11
2 B 12

有没有sql喜欢

select B.id, B.user, MAX(qty).NO
from B
left join A
on A.user = B.user

您可以使用以下方法实现此目的:

SELECT
    B.id,
    B.user,
    C.max_qty_no
FROM
    B
LEFT JOIN (
    SELECT 
        A.user,
        CASE
            WHEN A.qty = (
              MAX(A.qty) OVER (PARTITION BY A.user)
            ) THEN A.no
        END as max_qty_no
    FROM
        A
) C ON C.user = B.user AND
       C.max_qty_no IS NOT NULL;

SELECT
    B.id,
    B.user,
    C.max_qty_no
FROM
    B
LEFT JOIN (
    SELECT 
        A.user,
        REPLACE(
            MAX(CONCAT(A.qty,'-',A.no)),
            MAX(CONCAT(A.qty,'-')),''
                        
        ) as max_qty_no
    FROM
        A
    GROUP BY 
       A.user
) C ON C.user = B.user;

让我知道这是否适合你.