钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读1077650
首页 SQL 正文内容

sql某列相同取最小值

钟逸 SQL 2025-08-10 03:19:38 2

在sql中,我们经常需要对数据进行聚合操作,其中比较常见的一种就是求最小值。当我们遇到某列数据相同的情况时,如何正确地取到最小值呢?本文将详细讲解sql中针对某列相同取最小值的 ,并提供具体示例。

使用min()函数

最直接的 是使用min()函数。min()函数可以获取一组数据中的最小值。当我们对某列相同的数据进行min()运算时,它会取到所有相同数据中的最小值。例如:

sql

SELECT MIN(age) FROM users WHERE name='John';

使用DISTINCT关键字

如果我们希望在对某列相同的数据进行min()运算时,排除重复值,可以使用DISTINCT关键字。DISTINCT关键字可以去除重复的数据,只保留唯一的值。例如:

sql

SELECT MIN(DISTINCT age) FROM users WHERE name='John';

使用ROW_NUMBER()函数

对于某些数据库,例如sql server,可以使用ROW_NUMBER()函数来实现对某列相同的数据取最小值。ROW_NUMBER()函数可以为每行数据分配一个唯一的行号。我们可以使用ROW_NUMBER()函数与min()函数结合使用,来取到某列相同数据中的最小值。例如:

sql

SELECT MIN(age) FROM (

SELECT *, ROW_NUMBER() OVER (PARTITION BY name ORDER BY age) AS row_num

FROM users

) AS subquery

WHERE row_num = 1;

文章目录
    搜索