首頁 > 資料庫 > mysql教程 > 如何在SQL中選擇每組的第一行?

如何在SQL中選擇每組的第一行?

Mary-Kate Olsen
發布: 2025-01-22 06:05:08
原創
717 人瀏覽過

How to Select the First Row of Each Group in SQL?

SQL中選取每個分組的第一行

在資料庫管理中,經常需要檢索特定資料集以進行分析或報告。這包括選擇表中每個記錄組的第一行。

假設您有兩個表格:

  • SM_Employee (employeeid, roleid, storeid)
  • SM_SalesRepWorkflow (workflowid, salesrepid, quantityassigned, quantityleft, month, year)

問題:

您的任務是選擇目前月份和年份中SM_SalesRepWorkflow表中每個銷售代表(SalesRepId)的詳細資料的第一行。

解:

為此,您可以使用SQL中的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
) AS subquery
WHERE rownumber = 1;</code>
登入後複製

解釋:

  • 外層查詢為每個記錄分配一個行號,依SalesRepId列進行分區,並依workflowid升序排列。
  • WHERE子句過濾結果,只包含每個SalesRepId的第一筆記錄。

此查詢有效地標識了指定月份和年份中每個銷售代表的第一行記錄。它提供了一個簡潔的輸出,如問題陳述所示:

  • WF_101 : EMP_101 : 100 : 90 : May : 2013
  • WF_101 : EMP_102 : 100 : 100 : May : 2013
  • WF_101 : EMP_103 : 100 : 80 : May : 2013

透過應用ROW_NUMBER()函數,您可以有效地檢索表中每個分組的第一行數據,從而根據所需參數進行進一步分析或報告。

以上是如何在SQL中選擇每組的第一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板