比較表
比較基準 | グループ化 | 並び替え |
---|---|---|
基本 | 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句を理解しましょう。
節の順序による定義
Order By句は、クエリによって取得されたデータをソート順に表示するために使用されます。 Group By句と同様に、Order By句もSELECT句と連携して使用されます。 ソート順について言及していない場合、Order By句はデータを昇順にソートします。 昇順をasc 、降順をdescとして指定できます。
次の例を参考にして、Order By句の機能を理解しましょう。 先生用のテーブルがあり、先生用のテーブルのDepartment_IdとSalaryの2列にソートを適用します。
Group ByとOrder Byの主な違い
- Group By句は、SELECT句の下にあるリレーション内のタプルのセットをグループ化します。 一方、Order By句は、クエリの結果を昇順または降順に並べ替えます。
- 集約関数の下の属性はGroup By句の下に置くことはできませんが、集約関数の下の属性はOrder By句の下に置くことができます。
- タプルのグループ化は、タプルの属性値間の類似性に基づいて行われます。 一方、順序付けまたはソートは昇順または降順に基づいて行われます。
結論:
タプルの集合のグループを形成したい場合は、Group By句を使用する必要があります。 単一の列、またはタプルのセット内の複数の列のデータを昇順または降順に並べたい場合は、Order By句を使用する必要があります。