Order By 和 Group By的适用场景

绝地灬酷狼 2023-01-18 04:11 194阅读 0赞

Order By和Group By看起来很像,但实际上使用用途和适用场景实际上很大的不同。

Order By

Order By是排序根据所给字段进行排序

  1. select * from s
  2. 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是筛选所符合条件的组。

  1. select sno , count(cno)
  2. from sc
  3. where grade > 60
  4. group by sno having count(cno) > 3

混淆的地方
实际上就是名字导致的,group 分组但是实际会“吞掉”一部分数据,本来十几条数据,一下子三四条。主要是结合having或者一些统计函数来使用的。

order by有的时候是可以起到“分组”的用途,举个例子:我们想看同一学生的各科成绩,我们就order by学生的学生号,根据学生号分组,每一组都是同一个学生的各科成绩,都在一起形成了一个“分组”的情况。

发表评论

表情:
评论列表 (有 0 条评论,194人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mysql group by order by

    这两天让一个数据查询难了。主要是对group by 理解的不够深入。才出现这样的情况 这种需求,我想很多人都遇到过。下面是我模拟我的内容表 复制代码 代码如下: