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中文网其他相关文章!