MySql中groupby使⽤
Group BY字句将查询结果按某⼀列活多列的值分组,值相等的为⼀组。
对查询结果分组的⽬的是为了细化聚集函数的作⽤对象。如果未对查询结果分组,聚集函数将作⽤于整个查询结果。分组后聚集函数将作⽤于每⼀个组,即么⼀个组都有⼀个函数值。
groupby分组GROUP BY语法可以根据给定数据列的每个成员对查询结果进⾏分组统计,最终得到⼀个分组汇总表。SELECT⼦句中的列名必须为分组列或列函数。列函数对于GROUP BY⼦句定义的每个组各返回⼀个结果。
例⼦:求各个课程号及相应的选课⼈数
select cno,count(sno) from sc group by cno;
如果分组后还要求按⼀定的条件对这些组进⾏筛选,最终只输出满⾜条件的组,则可以使⽤having短语指定筛选条件。
例⼦:求查询选修了3门以上课程的学⽣学号
select sno from sc group by sno having count(*)>3;
where⼦句和having短语的区别在于作⽤对象不同。where⼦句作⽤于基本表或者视图,从中选择满⾜条件的元组。having短语作⽤于组,从中选择满⾜条件的组。
[1] 王珊,萨师煊数据库系统概论第三章
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论