SQLのGROUPBY句とORDERBY句は、SQLクエリによって取得されたデータを配置するために使用されます。 GROUPBY句とORDERBY句の重要な違いは、SQLクエリで複数の行セットに対して集計関数を使用する場合にGROUPBY句が適用されることです。対照的に、ORDER BY句は、クエリによって取得されたデータをソートされた順序で受け取りたい場合に適用されます。比較表に移る前に、まずこれらのSQL句を理解します。
GROUPBY句
SQLのGROUPBYステートメントは、クエリを使用して属性値内にデータを配置します。通常、SELECTステートメントでGROUPBY句を使用します。常にWHERE句の後にGROUPBY句を配置する必要があります。さらに、ORDERBY句の前にもペースが調整されます。
多くの場合、データベースからの出力を生成するために、SUM、AVG、MIN、MAX、COUNTなどの集計関数でGROUPBY句を使用できます。 GROUP BY句のクエリはグループ化されたクエリであり、グループ化されたオブジェクトごとに1つの行を返します。
以下は、SQLクエリでGROUPBY句を使用するための構文です
SELECT COLUMNNAME, FUNCTION(COLUMNNAME) FROM TABLENAME WHERE CONDITION GROUP BY COLUMNNAME;
いくつかの例を使用して、GROUPBY句を理解しましょう。与えられたレコードと一緒に次の表を検討してください。
表:従業員
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 | MANAGERID | WORKING_HOURS | 性別 |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 | 12 | F |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW | 2 | 10 | M |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE | 1 | 10 | F |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | ルチカ | JAIN | 50000 | ムンバイ | テスト | 4 | 9 | F |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 | 9 | F |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW | 2 | 9 | F |
3003 | DEEPAM | ジャウハリ | 58500 | ムンバイ | JAVA | 3 | 12 | M |
4001 | RAJESH | GOUD | 60500 | ムンバイ | テスト | 4 | 10 | M |
例1: 上記のデータについて、特定の都市の従業員の給与の合計を知りたいとします。これを行うには、次のように以下のクエリを実行します。
SELECT CITY, SUM(SALARY) FROM EMPLOYEES GROUP BY CITY;
このクエリは、最初に都市をグループ化した結果を形成しました。次に、 SUM 機能は都市の各グループで実行され、最終的に、以下に示すように目的の結果が得られます。
例2: 上記のデータについて、特定の部門の従業員の最高給与を知りたいとします。これを行うには、次のように以下のクエリを実行します。
SELECT DEPARTMENT, MAX(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;
このクエリは最初、部門をグループ化した結果を形成しました。次に、 MAX 機能は部門の各グループで実行され、最終的に、以下に示すように目的の結果が得られます。
ORDERBY句
GROUPBY句とORDERBY句は、SELECTステートメントで使用できます。 SQLクエリでは、ORDER BY句を使用して、クエリによって返されたレコードを昇順または降順で並べ替えました。並べ替え順序について言及しなかった場合、結果全体がデフォルトで昇順で並べ替えられます。
以下は、SQLクエリでORDERBY句を使用するための構文です
SELECT * FROM TABLENAME ORDER BY [ASC | DESC];
いくつかの例を使用して、ORDERBY句を理解しましょう。与えられたレコードと一緒に次の表を検討してください。
表:従業員
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 | MANAGERID | WORKING_HOURS | 性別 |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 | 12 | F |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW | 2 | 10 | M |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE | 1 | 10 | F |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | ルチカ | JAIN | 50000 | ムンバイ | テスト | 4 | 9 | F |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 | 9 | F |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW | 2 | 9 | F |
3003 | DEEPAM | ジャウハリ | 58500 | ムンバイ | JAVA | 3 | 12 | M |
4001 | RAJESH | GOUD | 60500 | ムンバイ | テスト | 4 | 10 | M |
例1: 名の列に基づいて、結果を昇順または降順の並べ替え順に並べたいとします。その場合、結果を取得するためにORDERBY句を使用します。これを行うには、次のように以下のクエリを実行します。
SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;
GROUPBYとORDERBYの主な違い
GROUPBY句とORDERBY句を区別するポイントは次のとおりです。
- SQLのGROUPBYステートメントは、特定の列の同様の値に基づいてレコードをグループ化するために使用されます。一方、SQLのORDER BY句は、表示結果を昇順または降順で並べ替えるために使用されます。
- SQLクエリでGROUPBY句を使用してクエリを実行する場合、集計関数を使用する必要があります。一方、SQでORDER BY句を使用している間は、集計関数を使用する必要はありません。
- GROUP BY句は、常にWHERE句の後、ORDERBY句の前にSQLクエリに配置されます。一方、ORDERBY句は常にGROUPBY句の後に配置されます。
比較チャート
SR.NO | グループ化 | 注文者 |
1 | GROUP BY句は、類似した値を持つ行をグループ化するために使用されます。 | ORDER BY句は、結果を降順または昇順で並べ替えるために使用されます |
2 | 行の表示を制御します | 列の表示を制御します |
3 | GROUPBY句は常にORDERBY句の前に配置されます。 | ORDERBY句は常にGROUPBY句の後に配置されます。 |
4 | 集計関数を使用する必要があります | 集計関数の使用は必須ではありません |
5 | 属性を集計関数の下に置くことはできません | GROUPBYステートメントの。この属性は、ORDERBYステートメントの集計関数の下に置くことができます。 |