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

SQL SELECT SUM

    SQL Sum()関数は、式の合計値を返すSQLの集計関数です。式は数値の場合もあれば、式の場合もあります。

    構文:

    SELECT SUM(columnname) FROM table_name WHERE conditions; 

    次のレコードがある既存のテーブルについて考えてみます。

    表:従業員

    EMPLOYEEID FIRST_NAME LAST_NAME 給与 CITY 部門 MANAGERID
    1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
    1002 VAIBHAV シャルマ 60000 NOIDA C# 5
    1003 NIKHIL VANI 50500 ジャイプール FMW 2
    2001 PRACHI シャルマ 55500 チャンディーガル ORACLE 1
    2002 BHAVESH JAIN 65500 PUNE FMW 2
    2003 ルチカ JAIN 50000 ムンバイ C# 5
    3001 PRANOTI SHENDE 55500 PUNE JAVA 3
    3002 ANUJA WANRE 50500 ジャイプール FMW 2
    3003 DEEPAM ジャウハリ 58500 ムンバイ JAVA 3
    4001 RAJESH GOUD 60500 ムンバイ テスト 4
    4002 ASHWINI バガット 54500 NOIDA JAVA 3
    4003 ルチカ AGARWAL 60000 デリー ORACLE 1
    5001 ARCHIT シャルマ 55500 デリー テスト 4

    例1: 従業員のテーブルから従業員の総給与を合計するクエリを作成します。

    SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;

    Sum式は、合計給与の合計を表示します。 s

    出力:

    SALARY
    742000

    例2: 従業員のテーブルから、都市がプネである従業員の給与を合計するクエリを記述します。

    SELECT CITY, SUM(SALARY) AS 'SALARY'  FROM EMPLOYEES WHERE CITY = 'PUNE';

    このクエリは、都市がプネである従業員の給与の合計を作成します。

    出力:

    CITY 給与
    PUNE 186500

    例3: オラクルを部門とする従業員の従業員テーブルから従業員の給与を合計するクエリを記述します。

    SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY'  FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';

    出力:

    DEPARTMENT 給与
    ORACLE 181000

    例4: 部門にオラクルとFMWが含まれる従業員テーブルから従業員の給与を合計するクエリを記述します。

    SELECT SUM(SALARY) AS 'SALARY'  FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');

    出力:

    SALARY
    347500

    例4: 給与が50000を超え、都市にプネとムンバイが含まれる従業員のテーブルから、従業員の給与の合計にクエリを記述します。

    SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;

    出力

    CITY EMPLOYEE_SALARY
    PUNE 119000
    ムンバイ 186500

    例5: 給与が50000を超えるか、都市にOracle、FMW、および部門別のグループが含まれる従業員のテーブルから、従業員の給与を合計するクエリを記述します。

    SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;

    出力:

    DEPARTMENT EMPLOYEE_SALARY
    C# 60000
    FMW 166500
    JAVA 168500
    ORACLE 181000
    テスト 116000

    例6: 従業員の固有の都市と都市ごとのグループを使用して、従業員のテーブルから従業員の給与を合計するクエリを記述します。

    SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;

    出力:

    CITY EMPLOYEE_SALARY
    チャンディーガル 55500
    デリー 115500
    ジャイプール 50500
    ムンバイ 169000
    NOIDA 114500
    PUNE 121000

    例7: 一意の部門と部門ごとのグループを持つ従業員のテーブルから従業員の給与を合計するクエリを記述します。

    SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;

    出力:

    DEPARTMENT EMPLOYEE_SALARY
    C# 110000
    FMW 116000
    JAVA 168500
    ORACLE 181000
    テスト 116000

    例8: 従業員のテーブルから従業員の給与を合計し、都市、部門ごとにグループ化するクエリを作成します。

    SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;

    出力:

    CITY 部門 EMPLOYEE_SALARY
    チャンディーガル ORACLE 55500
    デリー ORACLE 60000
    デリー テスト 55500
    ジャイプール FMW 101000
    ムンバイ C# 50000
    ムンバイ JAVA 58500
    ムンバイ テスト 60500
    NOIDA C# 60000
    NOIDA JAVA 54500
    PUNE FMW 65500
    PUNE JAVA 55500
    PUNE ORACLE 65500

    例9: 総給与が75000を超える都市ごとに、従業員のテーブルグループからの従業員の給与を合計するクエリを記述します。

    SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;

    出力:

    CITY 給与
    デリー 115500
    ジャイプール 101000
    ムンバイ 169000
    NOIDA 114500
    PUNE 186500

    ご覧のとおり、給与総額が75000を超える都市しかありません。

    例10: 従業員の給与をラップトップで合計し、部門ごとにグループ化するクエリを作成します。

    SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;

    出力:

    DEPARTMENT 給与
    C# 60000
    JAVA 113000
    ORACLE 60000
    テスト 55500

    例11: 総給与が58000を超える部門ごとに、ラップトップとグループで従業員の給与を合計するクエリを作成します。

    SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;

    出力:

    DEPARTMENT 給与
    C# 60000
    JAVA 113000
    ORACLE 60000


    1. 「ALTERTABLESWITCHステートメントが失敗しました」を修正する方法メッセージ4982(SQL Server)

    2. 等しくない<>!=NULLの演算子

    3. 制約の名前を知らずに外部キーを削除しますか?

    4. PostgreSQL/Oracleで2つの日付の差を計算する方法