- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL中orderbygroupbyhaving的用法区别
order by 、group by 、having的用法区别
order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。
group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。
什么是“聚合函数”?像sum()、count()、avg()等都是“聚合函数”使用group by 的目的就是要将数据分类汇总。
一般如:select 单位名称,count(职工id),sum(职工工资) form [某表]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 后面(重要)
例如,有如下数据库表:
A??? B 1??? abc 1??? bcd
1??? asdfg
如果有如下查询语句(该语句是错误的,原因见前面的原则)
select A,B from table group by A
该查询语句的意图是想得到如下结果(当然只是一相情愿)
A???? B ?????? abc 1???? bcd
?????? asdfg
右边3条如何变成一条,所以需要用到聚合函数,如下(下面是正确的写法):
select A,count(B) as 数量 from table group by A 这样的结果就是 A 数量 1??? 3
2. Having
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。例如:
SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)2
select
CASE WHEN ( GROUPING ( 产地 ) = 1) THEN 总计
ELSE ISNULL ( 产地 , UNKNOWN )
END AS 产地 ,
CASE WHEN ( GROUPING ( 水果 ) = 1) THEN 小计
ELSE ISNULL ( 水果 , UNKNOWN )
END AS 产地 ,
SUM ( 重量 ) 总重量
FROM TT
GROUP BY 产地 , 水果
WITH ROLLUP
结果:
/************************
北方 桔子 8
北方 水蜜桃 7
北方 香蕉 3
北方 小计 18
南方 桔子 3
南方 水蜜桃 6
南方 香蕉 3
南方 小计 12
总计 小计 30
*************************/
GROUPING(字段)=1的是对应字段汇总的 GROUPING(字段)=0的是对应字段原来的明细的信息 oracle Rollup 和 Cube用法
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,然后依次是(A、B),(A、
您可能关注的文档
- JuniperSSG-5-SH新手配置手册.doc
- Juniper防火墙的基本设置v.1.doc
- K36+025~+135开挖施工方案.doc
- jxsj1.2静力学公理教学设计.doc
- j苦瓜专用肥料配方及详细技术资料(12-08-10-YJZ2..doc
- Kappa分析.doc
- Kqjhwo高二生物生物科学与社会复习3.doc
- L-教育心理学集训题(含答案).doc
- KTV经营管理问题最佳解决途径.doc
- LEH多导脑神经激活治疗仪的治疗原理.doc
- SQL脚本优化方案.docx
- ssat考试分数的换算方法太傻咨询网.docx
- SurveillanceColonoscopyIsCost-EffectiveforPatientsWithAdenomasWhoAreatHighRiskofColore.doc
- swing的小知识点.doc
- Synthesisandanti-HIV-1activitiesofnovelpodophyllotoxinderivatives.doc
- Synthesisandpropertiesofnewpolyimide–silicahybridfilmsthroughbothintrachainandinterchai.doc
- s版三年级语文上册知识点.doc
- SynthesisofNylon6,10fromInterfacialPolymerization.doc
- Task2真题思路解析媒体.doc
- TAKTTIME的应用.doc
文档评论(0)