推奨されます, 2024

エディターズチョイス

SQLでのGroup ByとOrder Byの違い

SQLでは、クエリによって取得されたデータを整理することができます。 Group By句とOrder By句という、クエリから取得したデータを整理するための句が2つあります。 Group By句とOrder By句を区別する要点は、集計関数を複数のタプルセットに適用する場合はGroup By句を使用し、クエリによって取得されたデータをソートする場合はOrder By句を使用するということです。 Group By句とOrder By句の違いについて、下の比較表を使って説明しましょう。

比較表

比較基準グループ化並び替え
基本Group Byは、タプルのセットのグループを形成するために使用されます。Order Byは、クエリの結果として取得されたデータをソート形式で並べ替えるために使用されます。
属性集合関数の下の属性は、Group By節に入れることはできません。集合体の下の属性はOrder By句に入れることができます。
接地属性値間の類似性の理由で行われます。昇順と降順で行われました。

句のグループの定義

avg、min、max、sum、countなどの集約関数は、単一の組のタプルに適用されます。 もしあなたが集合関数をタプルの集合のグループに適用したいのであれば、そのためにGroup by句があります。 Group by句は、同じ属性値を持つタプルをグループ化します。

Group By句について覚えておくべきことが1つあります 。GroupBy句の下の属性SELECT句の中にある必要がありますが、 集約関数の下にはないことを確認してください。 Group By句にSELECT句の下にない属性、またはSELECT句の下にあるが集計関数の下にある属性が含まれている場合、クエリはエラーになります。 したがって、Group By句は常にSELECT句と連携して使用されると言えます。

例を挙げてGroup By句を理解しましょう。

Department_IDで教師グループからavg_salaryとして部署_ID、平均(給与)を選択します。

最初は中間結果が形成され、部門がグループ化されています。

次に、集合関数avgを各部署グループに適用した結果を以下に示します。

節の順序による定義

Order By句は、クエリによって取得されたデータをソート順に表示するために使用されます。 Group By句と同様に、Order By句もSELECT句と連携して使用されます。 ソート順について言及していない場合、Order By句はデータを昇順にソートします。 昇順をasc 、降順をdescとして指定できます。

次の例を参考にして、Order By句の機能を理解しましょう。 先生用のテーブルがあり、先生用のテーブルのDepartment_IdとSalaryの2列にソートを適用します。

Department_Id asc、Salary descの順に、[Department_ID]、[教師順からの給与]の順に選択します。

最初に、Department _IDを昇順に並べ替え、次に同じ部門の給与を降順に並べます。

Group ByとOrder Byの主な違い

  1. Group By句は、SELECT句の下にあるリレーション内のタプルのセットをグループ化します。 一方、Order By句は、クエリの結果を昇順または降順に並べ替えます。
  2. 集約関数の下の属性はGroup By句の下に置くことはできませんが、集約関数の下の属性はOrder By句の下に置くことができます。
  3. タプルのグループ化は、タプルの属性値間の類似性に基づいて行われます。 一方、順序付けまたはソートは昇順または降順に基づいて行われます。

結論:

タプルの集合のグループを形成したい場合は、Group By句を使用する必要があります。 単一の列、またはタプルのセット内の複数の列のデータを昇順または降順に並べたい場合は、Order By句を使用する必要があります。

Top