1 つのクエリで各セクションから上位 10 件のレコードを返したいのですが、その方法について誰か教えてくれませんか? セクションはテーブル内の列の 1 つです。
データベースは SQL Server 2005 です。入力された日付で上位 10 件を返します。セクションは、ビジネス、ローカル、および機能です。特定の日付については、上位 (10) のビジネス行 (最新のエントリ)、上位 (10) のローカル行、および上位 (10) の機能のみが必要です。
ベストアンサー1
SQL 2005 を使用している場合は、次のようにすることができます...
SELECT rs.Field1,rs.Field2
FROM (
SELECT Field1,Field2, Rank()
over (Partition BY Section
ORDER BY RankCriteria DESC ) AS Rank
FROM table
) rs WHERE Rank <= 10
RankCriteria に同点がある場合は、10 行以上が返される可能性があり、Matt のソリューションの方が適している可能性があります。