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

SQL SELECT MAX

    SQL Max()関数は、SQLの集約関数です。この関数は、条件の大きい方の値を返します。条件は数値の場合もあれば、文字列式の場合もあります。

    select max関数の構文:

    SELECT MAX(column_name) FROM table_name WHERE conditions;

    SQLSELECTMAXについて詳しく見ていきましょう。

    次のデータを持つ既存のテーブルについて考えてみます。

    テーブル名:従業員

    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 MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;

    上記のクエリでは、従業員のテーブル全体から最大給与を見つけます。 Max(給与)関数をmaxsalaryと名付けました。出力が返されるときに、給与が列名として表示されます。

    出力:

    MAX SALARY
    65500

    ご覧のとおり、従業員のテーブルからの最高給与は65500です

    例2: クエリを実行して、居住都市がムンバイである従業員の最高給与を従業員のテーブルから検索します。

    SELECT CITY, MAX(SALARY) AS 'SALARY'  FROM EMPLOYEES WHERE CITY = 'MUMBAI';

    上記のクエリでは、max(salary)をsalaryとして指定し、出力が返されるときに列名として表示されます。ムンバイで従業員の最高給与を見つけ、都市名を表示しました。

    出力:

    CITY 給与
    ムンバイ 60500

    ご覧のとおり、ムンバイ市に住む従業員の最高給与は60500です

    例3: 部門がJavaである従業員の従業員テーブルから従業員の最高給与を見つけるためのクエリを記述します。

    SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY'  FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';

    上記のクエリでは、max(salary)をmaximum_salaryとしてエイリアス化し、出力が返されるときに列名として表示されます。部門がJavaである従業員の最高給与を見つけ、部門名を表示しました。

    出力:

    DEPARTMENT MAXIMUM_SALARY
    JAVA 58500

    ご覧のとおり、Java部門の従業員の最高給与は58500です

    例4: 部門にリストの1つが含まれている従業員の最大給与が従業員のテーブルからOracleとFMWであることを見つけるためのクエリを記述します。

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

    上記のクエリではmax(salary)のエイリアスを作成しており、出力が返されるときに列名として表示されます。オラクルとFMWを部門とする従業員の最高給与を見つけました。

    出力:

    SALARY
    65500

    例5: クエリを実行して、給与が55000を超え、都市に従業員のテーブルグループからデリーのノイダが含まれる従業員の最大給与を都市別に検索します。

    SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;

    上記のクエリでは、Max(給与)にEMPLOYEE_SALARYという名前を付けており、出力が返されるときに列名として表示されます。給与が55000を超える従業員の最大給与が見つかりました。また、従業員の都市は、cityINパラメーターに含まれる名前の1つである必要があります。また、GROUPBY句の後にcity列を使用しました。ノイダ市は、ノイダにある市が従業員の給与を見つけたすべての従業員の1つの市にグループ化され、同じアプローチがデリー市にも使用されます。

    出力:

    CITY EMPLOYEE_SALARY
    デリー 60000
    NOIDA 60000

    従業員はデリー市に居住し、最高給与は60000であり、従業員はノイダ市に居住し、最高給与は60000です。

    例6: クエリを実行して、従業員のテーブルから最大従業員給与を検索します。都市は、部門ごとにグループ化された従業員に固有です。

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

    上記のクエリでは、max(DISTINCT salary)をEmployee_salaryと名付けており、出力が返されるときに列名として表示されます。部門ごとのグループ内の一意の都市を考慮して、従業員の表から最大の従業員給与を見つけました。

    出力:

    DEPARTMENT EMPLOYEE_SALARY
    NOIDA 60000
    ジャイプール 65500
    PUNE 58500
    PUNE 65500
    ムンバイ 60500

    例7: 部門ごとにグループ化された従業員の一意の部門の従業員のテーブルから最大従業員給与を見つけるためのクエリを記述します。

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

    上記のクエリでは、max(DISTINCT salary)をEmployee_salaryとしてエイリアス化し、出力が返されるときに列名として表示されます。部門の列ごとにグループ化された固有の部門を考慮して、従業員の表から最大の従業員給与を見つけました。

    出力:

    DEPARTMENT EMPLOYEE_SALARY
    C# 60000
    FMW 65500
    JAVA 58500
    ORACLE 65500
    テスト 60500

    例8: クエリを実行して、max()給与が55000を超える部門ごとに、従業員のテーブルグループから従業員の最大給与を検索します。

    SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;

    上記のクエリでは、max(salary)をsalaryとして指定し、出力が返されるときに列名として表示されます。従業員のテーブルの後に部門名が続くグループから最大従業員給与を見つけ、max()が55000より大きい条件で使用しました。

    出力:

    DEPARTMENT EMPLOYEE_SALARY
    NOIDA 60000
    ジャイプール 65500
    PUNE 58500
    PUNE 65500
    ムンバイ 60500

    ご覧のとおり、給与総額が55000を超える都市のみです。句を持つことはwhere句に似ています。集計関数に何らかの条件を適用する場合は、句を使用します。クエリで集計関数を使用した場合にのみ、having句を使用しました。

    例9: 部門ごとのラップトップグループで従業員の最高給与を見つけるためのクエリを作成します。

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

    上記のクエリでは、max(salary)をsalaryとして指定し、出力が返されるときに列名として表示されます。上記のクエリの説明、最初のサブクエリが実行されます(SELECT EMPLOYEEID FROM LAPTOP);その結果、null値を含む従業員IDを取得します。サブクエリが実行された後、メインクエリが実行されますSELECT DEPARTMENT、MAX(SALARY)AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN(サブクエリの出力)。メインクエリのIN演算子には、IN演算子に従ってサブクエリから出力される従業員のIDがあります。部門名ごとのグループである最終結果が得られます。

    出力:

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


    1. これらの4つの一般的なDBAの間違いを避けてください

    2. PostgreSQLの関数名は大文字と小文字を区別しませんか?

    3. 最初の実行時にsqliteデータベースをロードできません

    4. MySQLにBLOBおよびCLOBファイルを挿入する方法は?