关闭

order by 与group by的区别!

347人阅读 评论(0) 收藏 举报

一、提出问题:


二、order by只是对字段进行排序,而group by 不仅排序还有对重复行进行过滤的功能。

三、先对字段ustate进行了in筛选,得到字段的值为0,2,3的值(这时已经过滤掉了字段ustate为1的值),然后再对ustate字段进行分组,就是把字段ustate为0,2,3的值分为一组,由于输出显示uid和uname字段都是显示多行的,而group up按照sql标准是显示一行的,所以,最终输出的结果就是只取数据的第一行来显示。

四、例子:统计每个区域的总人口和总面积:

select region,sun(population),sum(area)

from chinese

group by region

先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。
五、group by  having 用法:
显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
ELECT region, SUM(population), SUM(area)
  FROM bbc
  GROUP BY region
  HAVING SUM(area) > 1000000
在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。相反,HAVING子句可以让我们筛选成组后的各组数据.
六、group by 用于分组显示数据
比如这样一张表
name work
张三 扫地
张三 做饭
李四 洗衣
你的目标是查看两个人分别作了几件事,注意你的主要目的是看他们做了几件事,而不是做了具体的什么事。
那么SQL 语句就是
select name,count(*) from tab group by name
1显示字段中必须有聚合函数
2group by 后面的字段必须在select中出现
3select中的非聚合字段必须在group中
 在进行数据库操作时,常用到添加、删除、修改等语句,这就经常会用到下面这些常用的SQL语句









0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5240次
    • 积分:168
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条