Sql 如果两行的值相同,则返回包含特定列的最大值的行。

Sql 如果两行的值相同,则返回包含特定列的最大值的行。,sql,sql-server,Sql,Sql Server,我有一个SQL查询的结果,如下所示 我想构建一个SQL查询,如果任意两行(或多于2行)与第一列中的行数相同,则该查询可以返回最后一列中的行包含最大数 例如,从表中,您可以看到顶部的两行与第一列的编号相同,即2195333。如果SQL查询运行,它将返回第一行和其余行,只丢弃第二行,因为第二行的最后一列是1,比第一行的2小 我在考虑在SQL中使用while循环,比如从第一行到最后一行运行循环,如果有任何行的第一列值相同,它将返回最后一列值最大的行。由于我是SQL新手,我不知道如何实现它。请让我帮帮

我有一个SQL查询的结果,如下所示

我想构建一个SQL查询,如果任意两行(或多于2行)与第一列中的行数相同,则该查询可以返回最后一列中的行包含最大数

例如,从表中,您可以看到顶部的两行与第一列的编号相同,即
2195333
。如果SQL查询运行,它将返回第一行和其余行,只丢弃第二行,因为第二行的最后一列是1,比第一行的2小


我在考虑在SQL中使用while循环,比如从第一行到最后一行运行循环,如果有任何行的第一列值相同,它将返回最后一列值最大的行。由于我是SQL新手,我不知道如何实现它。请让我帮帮我。谢谢

问题、样本数据和预期结果都有点欠缺

但是如果我理解你的问题,你可以将
WITH TIES
子句与
行数()配合使用

示例

Select Top 1 with ties *
 From  YourTable
 Order By Row_Number() over (Partition By YourCol1 Order By YourLastCol Desc)
编辑如果要查看领带,请使用稠密等级()


groupby
在您要为其设置不同行的列上,并对其他值使用聚合函数
MAX(other\u column)作为other\u column
@WillFM,我无法仅对第一列进行分组,我需要对所有其他列进行分组,以便对最后一列使用MAX函数。当我根据您的解决方案修改我的代码时,我发现一个错误,即“Partion”附近的
语法不正确。
@AkiraKaneshiro抱歉,输入错误Partition@AkiraKaneshiro开心吧helped@JohnCappelletti干杯:-)@AkiraKaneshiro Row_Number()是窗口函数之一。它们是无价的,值得你花时间去适应它们。可以将CTE与Row_Number()一起使用,但缺点是会得到一个额外的字段。对我来说,带领带的衣服更适合这种要求。关于您的另一个SQL问题,我建议发布另一个问题。如果我帮不上忙,我相信有人能帮上忙。请,请包括sampe数据、字段名称和所需结果。一个恰当的问题会让你得到更多的关注。