转:ROW_NUMBER() OVER函数的基本用法

发布时间 2023-12-07 17:49:13作者: BBS_自律

ROW_NUMBER() OVER函数的基本用法

 

分组后排序

 

 

 

 

在oracle 中分组倒叙排序,取出每一组的第一个值,如何通过 ROW_NUMBER() OVER 实现
 
ChatGPT
ChatGPT

在Oracle中,你可以使用ROW_NUMBER()窗口函数结合PARTITION BYORDER BY子句来实现按分组倒序排序并取出每一组的第一个值。以下是一个示例查询:

sql
SELECT your_columns FROM ( SELECT your_columns, ROW_NUMBER() OVER (PARTITION BY your_group_column ORDER BY your_order_column DESC) AS rnk FROM your_table ) ranked WHERE rnk = 1;

在上面的查询中:

  • your_table是你的表名。
  • your_columns是你要选择的列。
  • your_group_column是用于分组的列。
  • your_order_column是用于排序的列。

此查询首先使用ROW_NUMBER()窗口函数按照指定的分组列和排序列进行排序,并为每行分配一个行号。然后,在外部查询中,我们选择那些行号为1的行,即每个分组中的第一个行。请确保将这些占位符替换为你实际的表名和列名。