SQL の GROUP BY
句: 複数の列の処理
SQL GROUP BY
句は、指定された列に基づいてテーブル内の行を集計します。 単一列と複数列でどのように機能するかを見てみましょう。
単一列グループ化 (GROUP BY x
)
GROUP BY x
は、列 'x' で同じ値を共有する行をグループ化します。 同一の「x」値を持つすべての行は、単一のグループとして扱われます。
複数列のグループ化 (GROUP BY x, y
)
これを拡張すると、GROUP BY x, y
は列 'x' と 'y' の 両方 の一致する値に基づいて行をグループ化します。 同じグループに含めるには、行の 両方 'x' と 'y' が同じ値である必要があります。
例: 被験者の登録
学生の科目登録を追跡する Subject_Selection
テーブルについて考えてみましょう。
<code>Table: Subject_Selection +---------+----------+---------+ | Subject | Semester | Attendee | +---------+----------+---------+ | ITB001 | 1 | John | | ITB001 | 1 | Bob | | ITB001 | 1 | Mickey | | ITB001 | 2 | Jenny | | ITB001 | 2 | James | | MKB114 | 1 | John | | MKB114 | 1 | Erica | +---------+----------+---------+</code>
件名のみによるグループ化
クエリ SELECT Subject, COUNT(*) FROM Subject_Selection GROUP BY Subject
は Subject
ごとにグループ化します:
<code>+---------+--------+ | Subject | Count | +---------+--------+ | ITB001 | 5 | | MKB114 | 2 | +---------+--------+</code>
これは、各科目の総登録者数を示します。
科目および学期ごとにグループ化
クエリ SELECT Subject, Semester, COUNT(*) FROM Subject_Selection GROUP BY Subject, Semester
は、Subject
と Semester
によってグループ化されます:
<code>+---------+----------+--------+ | Subject | Semester | Count | +---------+----------+--------+ | ITB001 | 1 | 3 | | ITB001 | 2 | 2 | | MKB114 | 1 | 2 | +---------+----------+--------+</code>
これにより、学期ごとの各科目の登録者数が表示され、より詳細なビューが提供されます。 主な違いは、Semester
句に GROUP BY
を含めることで詳細レベルが追加されることです。
以上がSQL の「GROUP BY」関数は複数の列でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。