首页 >数据库 >mysql教程 >如何使用 ROW_NUMBER() 在 SQL 中选择每个组的第一行?

如何使用 ROW_NUMBER() 在 SQL 中选择每个组的第一行?

Susan Sarandon
Susan Sarandon原创
2025-01-22 06:13:14604浏览

How to Select the First Row of Each Group in SQL Using ROW_NUMBER()?

获取每个组的第一行记录

在SQL中,检索每个唯一分组的第一条记录是一项常见的任务。考虑一下这种情况,我们有两个表,SM_Employee和SM_SalesRepWorkflow。通过组合这两个表,我们希望为当前月份和年份的每个销售代表从SM_SalesRepWorkflow中选择第一行信息,并按SalesRepId排序。

为了实现这一点,我们可以利用ROW_NUMBER()函数的功能。以下是查询的详细解释:

<code class="language-sql">SELECT *
FROM(
  SELECT workflowid,
         salesRepId,
         quantityAssigned,
         quantityLeft,
         month,
         year,
         ROW_NUMBER()
           OVER (PARTITION BY salesRepId ORDER BY workflowid) AS rownumber
  FROM sm_salesRepWorkflow
)
WHERE rownumber = 1;</code>
  • 子查询根据salesRepId对每个销售代表计算行号,并按workflowid升序排序。
  • 然后,主查询过滤子查询,只包含rownumber为1的行,确保我们检索每个salesRepId的第一行。

通过使用ROW_NUMBER()函数,我们可以高效地选择每个销售代表的初始记录,同时遵守指定的条件。这种技术在需要分组和选择每个组的第一行的各种场景中都非常有用。

以上是如何使用 ROW_NUMBER() 在 SQL 中选择每个组的第一行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn