如果另一列在SQL Server中相同,则获取具有最小列值的行

爱格丽特
Id  Number  Value
------------------
1     6       1
2     6       2
3     9       2

我有一个这样的表,基本上,Value如果它们的Number列相同,我需要返回最小的行,我需要的示例结果如下:

Id  Number  Value
-----------------
1     6       1
3     9       2

如何在T-SQL中实现这一目标?

穆雷尼克

您可以使用rankwindow函数:

SELECT id, number, value
FROM   (SELECT id, number, value, RANK() OVER(PARTITION BY number ORDER BY value) AS rk
        FROM   mytable)
WHERE  rk = 1

编辑:
如注释中所述,如果存在多个行数最少的行value,则使用rank将返回两个行。如果您只想返回其中之一,则应row_number改用:

SELECT id, number, value
FROM   (SELECT id, number, value,
               ROW_NUMBER() OVER(PARTITION BY number ORDER BY value) AS rn
        FROM   mytable)
WHERE  rn = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果另一列具有相同的值,则将列中每一行的数据插入表中

Linq获取具有列最小值但基于另一列值的行

如果另一列具有相同的值,則檢查一列是否具有相同的值

如果一列值相等而另一列不相等,则忽略 SQL 中的一行

如果索引组在另一列中具有相同的值,则过滤DataFrame

查找一列中具有相同值而另一列中具有其他值的行?

MySQL 查询一列中具有相同值而另一列中具有不同值的行

选择在一列中具有相同值而在另一列中具有不同值的行

sql:使用单个查询在另一列中选择具有相同列值的行

如果一列为空,则使用SQL Server中条件所在的另一列获取数据

在多行的一列中查找具有相同值的行,而另一列具有不同的值

如果当前列在SQL中具有“零长度字符串”,则从另一列获取行值

获取具有最小值的行的ID,并按另一列分组

在另一列的同一表中具有相同值的SQL组项目

SQL / Postgres:查找具有相同值的元组(对于另一列中的给定值)

如何在一列中获取具有最小值的行,并按另一列进行分组,同时保留其他列?

如何使用Python获取另一列中具有相同值的值的总和?

SQL Server:如果有另一行具有相同的col值和特定的辅助列值,则排除表中的行

如何通过SQL中的另一列选择具有MAX(列值),DISTINCT的行?

从 Pandas Dataframe 中选择一列中具有相同值而另一列中仅丢失的行

删除r中另一列中具有相同ID但值不同的行

Pandas - 根据后一列中是否存在值过滤一列中具有相同值和另一列中多个值的行

如果在一列中具有相同的值,则连接行

如果满足条件,则用另一列中的值替换一列中的行

SQL:如果满足条件,则将值从列复制到同一列中的另一行

查找另一列中具有相同值的行-Python

获取在pandas的各列中具有相同值的行

如果另一列未退出SQL Server中的值,则按日期的四分之一获取行和总和组的计数

如果在SQL的另一列中满足条件,如何对一列中的单元格求和