この記事では、GROUP BY 句と ORDER BY 句の概要を完全に説明します。これらは主に、SQL クエリによって取得されたデータを整理するために使用されます。これらの文節の違いは、学習時に行き詰まりやすい箇所の 1 つです。 SQL 。それらの主な違いは次のとおりです。 GROUP BY 句は、複数の行セットに対して集計関数を使用する場合に適用できます。 ORDER BY句は、クエリで取得したデータをソート順に取得したい場合に適用します。 。比較を行う前に、まずこれらの SQL 句について理解します。
ORDER BY句
ORDER BY 句は、SQL クエリで使用され、クエリによって返されたデータを昇順または降順で並べ替えます。ソート順を省略した場合、デフォルトでは集計結果が昇順にソートされます。 ORDER BY 句は、GROUP BY 句と同様に、SELECT ステートメントと組み合わせて使用できます。 ASC は昇順を示し、 説明 は降順を表します。
SQL ステートメントで ORDER BY 句を使用する構文は次のとおりです。
画像をCSSで揃える
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
次の例を使用して、ORDER BY 句がどのように機能するかを理解しましょう。テーブルがあるとします 開発者 これには次のデータが含まれます。
これらの結果は体系的に表示されていないことがわかります。に基づいて結果を昇順または降順に整理したいとします。 状態列 。その場合、望ましい結果を得るには ORDER BY コマンドが必要になります。これを行うには、次のようにコマンドを実行します。
mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC;
望ましい結果が得られる出力は次のとおりです。
GROUP BY 句
GROUP BY 句は、同じ属性値を持つデータを整理するために SQL クエリで使用されます。通常は、SELECT ステートメントと一緒に使用します。 GROUP BY 句は WHERE 句の後に置く必要があることを常に覚えておいてください。さらに、ORDER BY 句の前に配置されます。
多くの場合、この句を SUM、AVG、MIN、MAX、COUNT などの集計関数と組み合わせて使用して、データベースから概要レポートを作成できます。この句の属性は、集計関数の下ではなく、SELECT 句に指定する必要があることに注意してください。そうすると、クエリは正しくなくなります。結果として、GROUP BY 句は常に SELECT 句と組み合わせて使用されます。 GROUP BY 句のクエリはグループ化クエリであり、グループ化されたオブジェクトごとに 1 つの行を返します。
Cの関数
SQL ステートメントで GROUP BY 句を使用する構文は次のとおりです。
SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name;
例を使って GROUP BY 句がどのように機能するかを理解しましょう。ここでは、同じ表を使用して説明します。
私たちが知りたいとします 特定の州における開発者の平均給与 そして、状態列に基づいて結果を降順に整理します。その場合、望ましい結果を得るには、GROUP BY コマンドと ORDER BY コマンドの両方が必要になります。これを行うには、次のようにコマンドを実行します。
mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC;
このクエリは最初に、状態をグループ化した中間結果を形成しました。次に、 平均 関数は状態の各グループに対して実行され、結果を降順に並べ替えると、最終的に以下に示すような望ましい結果が得られます。
GROUP BY と ORDER BY の主な違い
Group By 句と Order By 句の主な違いは次のとおりです。
- Group By 句は、特定の列の同じ値に基づいてデータをグループ化するために使用されます。一方、ORDER BY 句は結果を並べ替えて昇順または降順で表示します。
- Group By を使用するには、集計関数を使用することが必須です。一方、Order By を使用するために集計関数を使用することは必須ではありません。
- この属性は、集約関数の GROUP BY ステートメントの下に置くことはできませんが、集約関数の ORDER BY ステートメントの下に置くことはできます。
- Group By 句はタプルの表現を制御します。つまり、行の属性値間の類似性に基づいてグループ化が行われます。対照的に、ORDER BY 句は列の表示を制御します。つまり、列の属性値に基づいて昇順または降順で並べ替えまたは並べ替えが行われます。
- GROUP BY は常に WHERE 句の後、ORDER BY ステートメントの前に配置されます。一方、ORDER BY は常に GROUP BY ステートメントの後に使用されます。
GROUP BY と ORDER BY の比較表
次の比較表は、それらの主な違いを簡単に説明しています。
SN | グループ化 | 注文方法 |
---|---|---|
1. | 同じ値を持つ行をグループ化するために使用されます。 | 結果セットを昇順または降順に並べ替えます。 |
2. | CREATE VIEW ステートメントでは許可される場合があります。 | CREATE VIEW ステートメントでは許可されません |
3. | 行の表示を制御します。 | 列の表示を制御します。 |
4. | この属性を GROUP BY ステートメントの集計関数の下に置くことはできません。 | 属性は、ORDER BY ステートメントの集計関数の下に置くことができます。 |
5. | これは常に、SELECT ステートメントの ORDER BY 句の前で使用されます。 | これは常に、SELECT ステートメントの GROUP BY 句の後に使用されます。 |
6. | GROUP BY では集計関数を使用することが必須です。 | ORDER BY で集計関数を使用することは必須ではありません。 |
7。 | ここでは、行の属性値間の類似性に基づいてグループ化が行われます。 | ここで、結果セットは列の属性値に基づいて昇順または降順に並べ替えられます。 |
結論
この記事では、GROUP BY 句と ORDER BY 句を比較します。どちらの句も非常に便利な SQL データベース機能です。行のグループを形成したい場合は、GROUP BY 句を使用します。特定の列に基づいてデータを昇順または降順に整理する場合は、ORDER BY 句を使用します。どちらも 2 つの異なる目的に使用されるため、これらには何の関係もありません。ただし、特別な目的のためにそれらを組み合わせたり、状況に応じて個別に使用したりできます。これらの句は、SELECT ステートメントでのみ使用できます。
C での行列乗算