sql group by 与 having的用法

574 阅读6分钟
原文链接: www.cnblogs.com
sql group by 与 having的用法 - Myhsg - 博客园 独自等待

dedicated to the one that got away from you
随笔 - 109  文章 - 0  评论 - 35  博客园   首页  新随笔   联系   管理   订阅 订阅

sql group by 与 having的用法

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

 

 

 

posted on 2008-08-05 19:48 Myhsg 阅读(16790) 评论(6) 编辑 收藏
发表评论    #1楼 2008-11-20 19:57 | hls 顶~ 支持(0)反对(0)    #2楼 2008-12-03 11:30 | 夜风偷情 顶啊.... 支持(0) 反对(0)    #3楼 2009-10-12 09:40 | 风华少年 goods    #4楼 2009-11-12 21:42 | 安羽.   很短很有用. 支持(0) 反对(0) http://pic.cnblogs.com/face/u90133.jpg    #5楼 2010-04-13 14:50 | Cat Qi   很好 支持(0) 反对(0) http://pic.cnblogs.com/face/u72042.gif    #6楼37700572017/8/29 23:11:54 2017-08-29 23:11 | 刘道浩   针对你说的"group by 后面没有出现的字段,可以写在select后面吗?前提是对这个字段不用聚合函数的话。 "
小弟有一事不明,我用navicat测试,是可以的。比如,有一个表的字段有student_id,student_name,java_teacher。现在执行以下sql语句:
SELECT student_name ,java_teacher FROM student_table4 GROUP BY student_name;
返回的数据集的字段有student_name和java_teacher。我已经测试了,是可以的,只不过显示的java_teacher是在表中第一次出现的数据。楼主自己也可以试试。 支持(0) 反对(0) 刷新评论刷新页面返回顶部 注册用户登录后才能发表评论,请 登录注册访问网站首页。 【推荐】50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
【促销】腾讯云技术升级10大核心产品年终让利
【推荐】高性能云服务器2折起,0.73元/日节省80%运维成本
【新闻】H3 BPM体验平台全面上线
AR_1206 最新IT新闻:
· 张志东:腾讯是如何成长为一家大公司的
· 从黑客到创业,他说技术创业该这么做!
· 阿里安全技术平台资深专家玄泰揭秘:“如何防止信息泄露”
· 除了谷歌AI中国中心成立的重磅消息,大会现场还有这些好玩的
· 创业者的恐慌:及时止损,还是坚守到底?
» 更多新闻... 阿里云C2-1208 最新知识库文章:
· 以操作系统的角度述说线程与进程
· 软件测试转型之路
· 门内门外看招聘
· 大道至简,职场上做人做事做管理
· 关于编程,你的练习是不是有效的?
» 更多知识库文章...

公告

昵称:Myhsg
园龄:9年4个月
粉丝:11
关注:0 +加关注
< 2008年8月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

搜索

   

常用链接

随笔分类

随笔档案

.NET

搜索引擎

最新评论

阅读排行榜

评论排行榜

推荐排行榜

Copyright ©2017 Myhsg