oracle分组排序后取第一条

在 Oracle 中,可以使用「ROW_NUMBER」函数对某个列进行分组并排序,然后通过「WHERE」语句取第一条记录。

假设有一张「USERS」表,其中包含「ID」、「NAME」、「AGE」和「COUNTRY」列,您可以使用以下 SQL 语句对「AGE」列进行分组排序,并取第一条记录:

SELECT *
FROM (
  SELECT ID, NAME, AGE, COUNTRY, ROW_NUMBER() OVER (PARTITION BY AGE ORDER BY ID) RN
  FROM CUSTOMERS
)
WHERE RN = 1;

「PARTITION BY」语句用于定义分组的列(在本例中为「AGE」),「ORDER BY」语句用于定义排序的列(在本例中为「ID」),「ROW_NUMBER」函数用于生成每一行的行号。

最后,「WHERE RN = 1」语句用于取出第一条记录