SQLのGroup ByとOrder Byの違い
著者:
Laura McKinney
作成日:
1 4月 2021
更新日:
15 5月 2024
コンテンツ
SQLでは、クエリによって取得されたデータを整理できます。クエリから取得したデータを整理するためのGroup By句とOrder By句の2つの句があります。 Group By句とOrder By句を区別するポイントは、 グループ化 集合関数を複数の組のタプルに適用する場合、および 注文者 句は、クエリによって取得されたデータをソートするときに使用されます。以下に示す比較チャートを使用して、Group By句とOrder By句の違いについて説明します。
- 比較表
- 定義
- 主な違い
- 結論
比較表
比較の根拠 | グループ化 | 注文者 |
---|---|---|
ベーシック | 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を昇順で配置し、次に同じ部門の給与を降順で配置することがわかります。
- Group By句は、SELECT句の下にあるリレーション内のタプルのセットをグループ化します。一方、Order By句は、クエリの結果を昇順または降順に並べ替えます。
- 集約関数の下の属性はGroup By句の下に配置できませんが、集約関数の下の属性はOrder By句の下に配置できます。
- タプルのグループ化は、タプルの属性値間の類似性に基づいて行われます。一方、順序付けまたはソートは、昇順または降順に基づいて行われます。
結論:
タプルのセットのグループを形成する場合は、Group By句を使用する必要があります。単一の列のデータ、またはタプルのセット内の複数の列のデータを昇順または降順に並べる場合は、Order By句を使用する必要があります。