SQLのGroup ByとOrder Byの違い

著者: Laura McKinney
作成日: 1 4月 2021
更新日: 15 5月 2024
Anonim
小学生でもわかるSQLのGROUP BYと集計関数【SQL講座②】
ビデオ: 小学生でもわかるSQLのGROUP BYと集計関数【SQL講座②】

コンテンツ


SQLでは、クエリによって取得されたデータを整理できます。クエリから取得したデータを整理するためのGroup By句とOrder By句の2つの句があります。 Group By句とOrder By句を区別するポイントは、 グループ化 集合関数を複数の組のタプルに適用する場合、および 注文者 句は、クエリによって取得されたデータをソートするときに使用されます。以下に示す比較チャートを使用して、Group By句とOrder By句の違いについて説明します。

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠グループ化注文者
ベーシックGroup Byは、タプルのセットのグループを形成するために使用されます。Order Byは、クエリの結果として取得されたデータを並べ替え形式で整理するために使用されます。
属性 集約関数の下の属性をGroup By句に含めることはできません。集約下の属性は、Order By句に含めることができます。
接地属性値間の類似性に基づいて行われます。昇順と降順の理由で行われます。

Group By句の定義

avg、min、max、sum、countなどの集計関数は、タプルの単一セットに適用されます。集合関数をタプルのセットのグループに適用したい場合、Group by句があります。 Group by句は、同じ属性値を持つタプルをグループ化します。

ひとつのことがあります 覚えている Group By句については、 属性グループ化 句は 選択 条項が じゃない の下で 集約関数。 Group By句にSELECT句の下にない属性が含まれている場合、またはSELECT句の下にあるが集約関数の下にある場合、クエリはエラーになります。したがって、Group By句は常にSELECT句と連携して使用されると言えます。


Group By句を理解するための例を見てみましょう。

Department_IDにより、教師グループからavg_salaryとしてavg(Salary)を選択します。

最初に、部門をグループ化した中間結果が形成されることがわかります。

次に、集計関数avgが部門の各グループに適用され、結果が以下に示されています。

句による順序の定義

Order By句は、クエリによって取得されたデータをソートされた順序で表示するために使用されます。 Group By句と同様に、Order By句もSELECT句と連携して使用されます。並べ替え順序を指定しない場合、Order By句はデータを昇順で並べ替えます。昇順を次のように指定できます asc および降順 デスク.

次の例を使用して、Order By句の動作を理解しましょう。 Teacherテーブルがあり、TeacherテーブルのDepartment_IdとSalaryの2つの列にソートを適用します。


Department_IDを選択し、Department_Id ascによる教師の注文からの給与、salary descを選択します。

最初に、部門_IDを昇順で配置し、次に同じ部門の給与を降順で配置することがわかります。

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

結論:

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