分组之后取每组之内根据排序字段的第一行值 (可以根据rownum 随便取) SELECT * FROM ( SELECT *, ROW_NUMBER () OVER ( PARTITION BY [分组字段] ORDER BY [排序字段] ) rownum FROM 表名 ) t WHERE rownum = 1 分组之后取字段最大/最小值 SELECT MAX(指定字段), [分组字段] FROM 表名 GROUP BY [分组字段] SELECT MIN(指定字段), [分组字段] FROM 表名 GROUP BY [分组字段]