order by 与group by的区别!

来源:互联网 发布:淘宝运费险咨询电话 编辑:程序博客网 时间:2024/04/25 18:06

一、提出问题:


二、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 name1显示字段中必须有聚合函数2group by 后面的字段必须在select中出现3select中的非聚合字段必须在group中 在进行数据库操作时,常用到添加、删除、修改等语句,这就经常会用到下面这些常用的SQL语句









0 0
原创粉丝点击