Order By 和 Group By的适用场景
Order By和Group By看起来很像,但实际上使用用途和适用场景实际上很大的不同。
Order By
Order By是排序根据所给字段进行排序
select * from s
order by sname desc, sage desc
默认是升序,多个排序字段,采用的是从左到右的来进行条件排序,实际上数据库或者很多软件设计比如说浏览器什么的,都是采用做排序原则。
Group By
group by是一个分组,条件相同的为一组,但是要注意分组会“合并”,加入100条数据,group by后可能就是几条数据。
这些数据丢失了吗?没有只是根据分组只展示一条罢了,这个以什么用?
(1)可以搭配细化集函数(count,sum,avg,max,min)的作用对象,获取你想要的统计指标
(2)对多个属性分组统计,比如说一个表是成绩,可以通过班级,科目来分组统计查看
(3)根据Having短语筛选最终结果,首先要知道Having和where的区:
where筛选条件,找到所要的列。
having是筛选所符合条件的组。
select sno , count(cno)
from sc
where grade > 60
group by sno having count(cno) > 3
混淆的地方
实际上就是名字导致的,group 分组但是实际会“吞掉”一部分数据,本来十几条数据,一下子三四条。主要是结合having或者一些统计函数来使用的。
order by有的时候是可以起到“分组”的用途,举个例子:我们想看同一学生的各科成绩,我们就order by学生的学生号,根据学生号分组,每一组都是同一个学生的各科成绩,都在一起形成了一个“分组”的情况。
还没有评论,来说两句吧...