sql >> データベース >  >> RDS >> Oracle

ウィンドウ関数を使用してSQLクエリでグループ化できますか?

    最初に覚えておくべきことは、ウィンドウ関数(OVER()など)です。 句)クエリの結果を処理します。つまり、サーバーは最初にクエリを実行し、次にユーザーが定義したウィンドウ関数を適用します。

    つまり、同じクエリでウィンドウ関数とgroup by句を実際に使用できますが、次のようにカプセル化する必要があります。

    SELECT department_id,
           min(min(salary)) OVER (partition by department_id) as minsalary
    FROM employees
    GROUP BY department_id;
    

    ただし、これはウィンドウ関数を使用するのに適した場所ではないことに同意します。マットの提案はここで最高です(ROW_NUMBER() CTEで またはsubquery 、次にメインのSELECTで目的の行のみを選択します 。



    1. Oracle:カーソルがカーソル内にある場合(カーソル式を使用)、Selectdistinctは機能しません

    2. 並列計画の開始方法–パート4

    3. node.jsを使用したPostgresでのアップサート

    4. 結果のない左結合のMySQLjson_arrayagg