2016-07-31 9 views
3

すべてのId#の上位4行目を選択するSQLクエリは何ですか?SQL Serverでは、上位4行目を選択する方法は?

レコードの上位4行ではありません。私はすべてのIDのレコード/列の4行目のみを選んでいます。

+0

ローは昇順または降順で並べられていますか?出力をどのようにするべきかの例を挙げてください。 –

+0

すべての請求IDには、複数行の取引があります。私はトップから4行目だけを選ぶ必要があります。 – goofyui

+0

MySQLを使用している場合、取得されるローのオフセット数を設定する制限節があります –

答えて

7

row_number機能使用:パーティションでトップ

1

のあなたの定義によればあなたは、特定の第四を取得するには、次のクエリを使用して、テーブルの必要なIDを渡すことができることで

With cte as 
(
    select 
     *, 
     row_number() over (partition by id order by id) as rownum 
    from 
     table 
) 
select * 
from cte 
where rownum = 4 

変更順序を行:

SELECT * 
FROM 
    (SELECT 
     m.CityId, m.Country, m.Location, m.NoofDweller, 
     ROW_NUMBER() OVER (ORDER BY Country ASC) AS RowNumber 
    FROM 
     Cities m 
    WHERE 
     m.Country = 3 -- Just pass the required ID of the table 
    ) AS Details 
WHERE 
    RowNumber = 4 -- Gets details of the 4th row of the given ID 
関連する問題