Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何通过在列B上分组和在列C上使用where filter返回列A的最大值结果_Sql_Sql Server 2008_Group By_Max_Where - Fatal编程技术网

Sql 如何通过在列B上分组和在列C上使用where filter返回列A的最大值结果

Sql 如何通过在列B上分组和在列C上使用where filter返回列A的最大值结果,sql,sql-server-2008,group-by,max,where,Sql,Sql Server 2008,Group By,Max,Where,请原谅标题,但这是表t1中的内容 我只想在组内的AMOUNT为MAX时返回相同TRX_键和ID=1的行。所以在这种情况下,我想要下面的结果- 下面是示例数据- create table t1( TRX_KEY int not null ,ID int null, AMOUNT int null) insert into t1 values (1,1,1000) insert into t1 values (1,2,100) insert into t1 values (1,3,10) in

请原谅标题,但这是表t1中的内容

我只想在组内的AMOUNT为MAX时返回相同TRX_键和ID=1的行。所以在这种情况下,我想要下面的结果-

下面是示例数据-

create table t1( TRX_KEY int not null ,ID int null, AMOUNT int null)
insert into t1 values (1,1,1000)
insert into t1 values (1,2,100)
insert into t1 values (1,3,10)

insert into t1 values (2,1,100)
insert into t1 values (2,2,1000)
insert into t1 values (2,3,10)

insert into t1 values (3,1,5000)
insert into t1 values (3,2,1000)
insert into t1 values (3,3,10)

使用窗口功能,如
行号

;WITH temp AS (
    SELECT TRX_KEY, ID, Amount,
            ROW_NUMBER() OVER (PARTITION BY TRX_KEY ORDER BY Amount DESC) As RowNumber
    FROM    #t1
)

SELECT  *
FROM    temp
WHERE   RowNumber = 1 AND ID = 1

谢谢Zoff,但是您的查询给了我TRX_KEY=2的记录,它没有ID=1的最大值。我在问题中添加了示例数据。因此,您只需要在每个
TRX\u键
中最大金额属于
ID=1
的行?是的,先生,这就是我想要的。只要ID=1有TRX_键组的最大数量,我就要拉取该记录。