データベースクエリでは、結果は通常、特定の列の最大値または最小値など、特定の特性を持つ線に限定されます。 Oracle SQLでは、分析関数(rank()、dense_rank()、またはrow_number()などの分析関数を使用して、この目的を達成できます。
最高値ランク()およびdense_rank()rank()やdense_rank()などの分析関数は、指定されたソートに従って各行にAレベルを割り当てます。列の上位5の最大値を取得するには、次のクエリ形式を使用できます。
select * from(from(from(from rnkとしてrow_number()分析関数は、各行のシリアル番号を割り当てます。それを使用して、その価値に関係なく、特定の数の行を取得できます。例えば:
SELECT *
FROM (
SELECT , RANK() OVER (ORDER BY DESC) AS rnk
FROM
)
WHERE rnk
を使用する
それは一般的ではありませんが、Rownum Pseudo列を使用して結果を特定の量に制限することもできます。ただし、rownumは命令で命令前に評価されるため、予測不可能な結果につながる可能性があるため、注意して使用する必要があります。
例:最高の給与を持つ従業員 rank()とdense_rank()の使用法を説明するために、最高の給与を持つ5人の従業員の使用法:
select * from(from(from(from rnkとしてempno、sal、rank()over(sal descによる注文)を選択します Empから 治す ここでrnk このクエリは、従業員の給与に基づいて各従業員に数値レベルを割り当てます。次に、給与の減少の順に上位5人の従業員を示します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3