如何使用SQL在银行的每个分支中找到具有最大余额的帐户?

时间:2018-06-05 10:40:58

标签: sql

如何使用SQL在银行的每个分支中找到具有最大余额的帐户?我有一个表有3列帐号,余额和分支的表。

2 个答案:

答案 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; --------- --------- + --------- + --------- + --------- + + --------- + --------- +