如何使用SQL在银行的每个分支中找到具有最大余额的帐户?我有一个表有3列帐号,余额和分支的表。
答案 0 :(得分:0)
如果您使用的是SQL Server,则以下操作将使用ROW_NUMBER():
CREATE TABLE #TEMP_A
(
BALANCE INT,
BRANCH VARCHAR(20),
ACCOUNT INT
)
INSERT INTO #TEMP_A
VALUES(100,'WEST',001)
INSERT INTO #TEMP_A
VALUES(200,'WEST',002)
INSERT INTO #TEMP_A
VALUES(400,'EAST',003)
INSERT INTO #TEMP_A
VALUES(500,'EAST',004)
SELECT ACCOUNT FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY BRANCH ORDER BY BALANCE DESC) AS ROWNUM,* FROM #TEMP_A
) AS X WHERE ROWNUM = 1
答案 1 :(得分:0)
--------- + --------- + --------- + --------- + ------- - + --------- + --------- +
SELECT DISTINCT(A.ACCOUNT),TMP.BRANCH,TMP.AMT
从表A,
(选择分支,MAX(AMOUNT)作为AMT
从表中
GROUP BY BRANCH)作为TMP
在哪里A.BRANCH = TMP.BRANCH
AND A.AMOUNT = TMP.AMT
GROUP BY A.ACCOUNT,TMP.BRANCH,TMP.AMT;
--------- --------- + --------- + --------- + --------- + + --------- + --------- +