Sql-Server

如何從每個州返回前 10 行

  • April 25, 2016

如何返回每個類別的前 10 行?

假設我有一個名為xyz. state在這個詞的政治單位意義上,它有一個名為 的列。

我想要每個州的前 10 行。我是否使用case以便人們可以看到該行是從哪個狀態?

我正在使用 SQL Server 2012。

前 10 名將來自 FCFS,即它們的輸入順序。

列是

FirstName, LastName, Address, city, state, zip, phone etc.

例如,我的表中有來自 AL、CT、NY 等州的行。我想要基於每個州的 FCFS 的前 10 行。

因此,您希望在記錄插入數據庫的日期之前每個州的前 10 條記錄。(我假設您有 FCFS 的日期列)。您可以為此使用分區功能。

select 
   <list_of_columns> 
from (
       select 
           ROW_NUMBER() over (partition by state order by date asc) as row, 
           <list_of_other_columns_from_XYZ> 
       from XYZ 
       where <where_condition>
       ) AS X
where 
   X.row =< 10
order by <oder_by_clause>

(假設 SQL Server 用於查詢)

檢查Ranking FunctionsROW_NUMBER了解更多詳細資訊。

我希望這有幫助。

引用自:https://dba.stackexchange.com/questions/136417