oracle数据库如何分组统计后取每组第一条记录
时间: 2024-01-31 11:02:26 浏览: 187
您可以使用ROW_NUMBER()函数来完成此操作。以下是一个示例查询,它将根据订单日期对订单进行分组,然后选择每组中最早的订单。
SELECT order_number, order_date, product_name, quantity
FROM (SELECT order_number, order_date, product_name, quantity,
ROW_NUMBER() OVER (PARTITION BY order_date ORDER BY order_number) AS row_num
FROM orders) AS order_subquery
WHERE row_num = 1;
这将分组按订单日期,并将每个组按订单号排序。 ROW_NUMBER函数为每个组中的行分配唯一编号。 然后,查询将过滤出每个组中的第一个行(即row_num = 1)。 您可以根据需要更改ORDER BY子句,并更改PARTITION BY语句以根据不同的分组条件分组。
阅读全文