私は現在SQLを(徹底的に)学んでいて、GROUP BY
clauseに出くわしました。
GROUP BY
は、指定した引数に従って結果セットを集約またはグループ化します。クエリでこの句を使用すると、結果セットで集計関数を実行して、平均(AVG())
や頻度(COUNT())
などの結果セットの統計情報を見つけることができます。
私の質問は次のとおりです。GROUPBYステートメントは、集計関数を伴わずに何らかの形で役立ちますか?
pdateGROUP BY
をDISTINCT
の同義語として使用することは、遅いと思われるため、(おそらく)悪い考えです。
gROUP BYステートメントは、集計関数を伴わずに何らかの形で役立ちますか?
このような状況では、DISTINCT
を使用することは同義語ですが、GROUP BY
句を定義する必要がある理由は、HAVING
句を定義できるようにするためです。詳細。
HAVING
句を定義する必要がある場合は、haveGROUP BY
-を定義します。 DISTINCT
と組み合わせて実行することはできません。
[〜#〜] distinct [〜#〜] selectを実行するには、GROUP BYを使用します。[〜#〜]集計[〜# 〜]。
Group byは双方向主に使用できます
1)in conjunction SQL集計関数を使用
2)to eliminate結果セットから重複する行
したがって、あなたの質問に対する答えは、上記のUSEの2番目の部分にあります。
注:以下のすべてはMySQL
にのみ適用されます
GROUP BY
is guaranteed 結果を順番に返すために、DISTINCT
はそうではありません。
GROUP BY
とORDER BY NULL
は、DISTINCT
と同じ効率です(そして、言うように実装されています)。集約(または識別)されているフィールドにインデックスがある場合、両方の句でこのフィールドに対してルーズインデックススキャンが使用されます。
GROUP BY
では、グループ化されていない式と集約されていない式を返すことができます。 MySQL
は、対応するグループから任意のランダムな値を選択して、式を計算します。
GROUP BY
を使用すると、SELECT
句からGROUP BY
式を省略できます。 DISTINCT
では、できません。 DISTINCT
によって返されるすべての行は、一意であることが保証されています。