ORACLE SQL 我在 select 语句中遇到问题,该语句应显示每个分支的 MAX 余额
ORACLE SQL I am having problem with a select statement that should show the MAX balance for every branch
大家好,感谢大家的帮助。
我有这个查询:
SELECT c.accNum.bID.bID AS "Branch ID",
--c.accNum.accNumber AS "Account Number",
--c.accHolder.PrintFullName() AS "Customer Name",
MAX(c.accNum.balance) AS "Balance"
FROM tabCustomersAccounts c
GROUP BY c.accNum.bID.bID--, c.accNum.accNumber, c.accHolder.PrintFullName(), c.accNum.balance
ORDER BY c.accNum.bID.bID;
Results
当我将代码更改为:
SELECT c.accNum.bID.bID AS "Branch ID",
c.accNum.accNumber AS "Account Number",
c.accHolder.PrintFullName() AS "Customer Name",
MAX(c.accNum.balance) AS "Balance"
FROM tabCustomersAccounts c
GROUP BY c.accNum.bID.bID, c.accNum.accNumber, c.accHolder.PrintFullName(), c.accNum.balance
ORDER BY c.accNum.bID.bID;
Results
从这个结果你可以看出我他们错了,因为我只想显示每个分支的 MAX 余额。
使用row_number()
。您的实际列名有点不清楚,但是是这样的:
SELECT ca.*
FROM (SELECT ca.*,
ROW_NUMBER() OVER (PARTITION BY ca.bid ORDER BY c.balance DESC) as seqnum
FROM tabCustomersAccounts ca
) ca
WHERE seqnum = 1;
大家好,感谢大家的帮助。
我有这个查询:
SELECT c.accNum.bID.bID AS "Branch ID",
--c.accNum.accNumber AS "Account Number",
--c.accHolder.PrintFullName() AS "Customer Name",
MAX(c.accNum.balance) AS "Balance"
FROM tabCustomersAccounts c
GROUP BY c.accNum.bID.bID--, c.accNum.accNumber, c.accHolder.PrintFullName(), c.accNum.balance
ORDER BY c.accNum.bID.bID;
Results
当我将代码更改为:
SELECT c.accNum.bID.bID AS "Branch ID",
c.accNum.accNumber AS "Account Number",
c.accHolder.PrintFullName() AS "Customer Name",
MAX(c.accNum.balance) AS "Balance"
FROM tabCustomersAccounts c
GROUP BY c.accNum.bID.bID, c.accNum.accNumber, c.accHolder.PrintFullName(), c.accNum.balance
ORDER BY c.accNum.bID.bID;
Results
从这个结果你可以看出我他们错了,因为我只想显示每个分支的 MAX 余额。
使用row_number()
。您的实际列名有点不清楚,但是是这样的:
SELECT ca.*
FROM (SELECT ca.*,
ROW_NUMBER() OVER (PARTITION BY ca.bid ORDER BY c.balance DESC) as seqnum
FROM tabCustomersAccounts ca
) ca
WHERE seqnum = 1;