前回の記事では、ORDER BY句を使用してクエリ結果を並べ替える方法について説明しました。
データをソートした後、さらに処理できます。上位10件のヒット、映画のランキング、ゲームのランキングなど、さまざまなトップNランキングがよく見られます。また、クライアントにデータを表示する場合、通常、すべての結果を一度に一覧表示するのではなく、一度にN(10、20、50など)レコードを表示し、「次のページ」、「前のページ」、およびその他のページめくりを提供します特徴。この記事では、SQLステートメントを使用して上記の2つの一般的な機能を実現する方法について説明します。
トップNランキング
トップNランキングの原則は、最初に並べ替えてから、上位Nレコードに戻ることです。プロセスの概略図は次のとおりです。
トップNランキングを達成するには、主に2つの方法があります。
- 標準SQLによって提供されるFETCH構文。
- 別の一般的なLIMIT構文。
標準SQLを使用してトップNランキングを達成する
次の例では、FETCH句を使用して、月額給与の上位5人の従業員をクエリします。
-- Oracle、SQL Server 以及 PostgreSQL 实现
SELECT emp_name, salary
FROM employee
ORDER BY salary DESC
OFFSET 0 ROWS
FETCH FIRST 5 ROWS ONLY;
その中で、ORDER BYは月額給与を高から低にソートします; OFFSETは0行をスキップすることを意味します;次にFETCHは最初の5つのデータ、つまり従業員の上位5の月給を返します。このステートメントの結果は次のとおりです。