没有合适的资源?快使用搜索试试~ 我知道了~
order by 、group by 、having的用法
3星 · 超过75%的资源 需积分: 50 12 下载量 89 浏览量
2011-01-26
10:00:34
上传
评论 2
收藏 49KB DOC 举报
温馨提示
试读
19页
order by 、group by 、having的用法区别 order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。 什么是“聚合函数”? 像sum()、count()、avg()等都是“聚合函数” 使用group by 的目的就是要将数据分类汇总。
资源推荐
资源详情
资源评论
Having
这个是用在聚合函数的用法。当我们在用聚合函数的时候,一
般都要用到 GROUP BY 先进行分组,然后再进行聚合函数的运算。
运算完后就要用到 HAVING 的用法了,就是进行判断了,例如说判
断聚合函数的值是否大于某一个值等等。
select customer_name,sum(balance)
from balance
group by customer_name
having balance>200; yc_rpt_getnew
order by 、group by 、having 的用法区别
order by 从英文里理解就是行的排序方式,默认的为升序。 order
by 后面必须列出排序的字段名,可以是多个字段名。
group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使
用,使用时至少需要一个分组标志字段。
什么是“聚合函数”?
像 sum()、count()、avg()等都是“聚合函数”
使用 group by 的目的就是要将数据分类汇总。
一般如:
select 单位名称,count(职工 id),sum(职工工资) form [某表]
1
group by 单位名称
这样的运行结果就是以“单位名称”为分类标志统计各单位的职工人数
和工资总额。
在 sql 命令格式使用的先后顺序上,group by 先于 order by。
select 命令的标准格式如下:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使
用
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函
数的列,必须出现在 group by 后面(重要)
例如,有如下数据库表:
A999 B
1999 abc
1999 bcd
2
1999 asdfg
如果有如下查询语句(该语句是错误的,原因见前面的原则)
select A,B from table group by A
该查询语句的意图是想得到如下结果(当然只是一相情愿)
A9999 B
999999 abc
19999 bcd
999999 asdfg
右边 3 条如何变成一条,所以需要用到聚合函数,如下(下面是正确的
写法):
select A,count(B) as 数量 from table group by A
这样的结果就是
A 数量
1999 3
2. Having
where 子句的作用是在对查询结果进行分组前,将不符合 where 条
件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,
使用 where 条件显示特定的行。
3
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,
条件中经常包含聚组函数,使用 having 条件显示特定的组,也可以
使用多个分组标准进行分组。
having 子句被限制子已经在 SELECT 语句中定义的列和聚合表达式
上。通常,你需要通过在 HAVING 子句中重复聚合函数表达式来引
用聚合值,就如你在 SELECT 语句中做的那样。例如:
SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING
COUNT(B)>2
Grouping 的用法:
指示是否聚合 group by 列表中的指定表达式。在结果集中,如
果 Grouping 返回 1 ,表示聚合;如果 Grouping 返回 0 ,表示非聚合。
如果指定了 Group by ,那么只能用在 Select , Having , Order by
中。
注释:
GROUPING 用 于 区 分 标 准 空 值 和 由 ROLLUP 、 CUBE 或
GROUPING SETS 返 回 的 空 值 。 作 为 ROLLUP 、 CUBE 或
GROUPING SETS 操作结果返回的 NULL 是 NULL 的特殊应用。它
在结果集内作为列的占位符,表示全体。
举例:
CREATE TABLE tt ( 产地 CHAR ( 8), 水果 CHAR ( 8), 重量 INT )
4
剩余18页未读,继续阅读
资源评论
- 夜灯下的人2014-08-11是不是有点写错了呢,
sunlongchina
- 粉丝: 8
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功