当前位置: 首页 > news >正文

建设企业网站注意事项深圳推广

建设企业网站注意事项,深圳推广,网站目录结构,新余seo1、having关键字概览 1.1、作用 对查询的数据进行筛选 1.2、having关键字产生的原因 使用where对查询的数据进行筛选时,where子句中无法使用聚合函数,所以引出having关键字 1.3、having使用语法 having单独使用(不与group by一起使用&a…

1、having关键字概览

1.1、作用

  • 对查询的数据进行筛选

1.2、having关键字产生的原因

  • 使用where对查询的数据进行筛选时,where子句中无法使用聚合函数,所以引出having关键字

1.3、having使用语法

  • having单独使用(不与group by一起使用,在Oracle中会报错),单独使用时,大部分场合与where相同
  • having与group by一起使用,这是having关键字产生的初衷,对分组之后的数据再进行筛选

1.4、having与where的区别

  1. 一般情况下,where用于过滤数据行,而having用于过滤分组(能用where的地方,不要使用having)
  2. where中不能出现聚合函数,而having可以使用聚合函数作为条件
  3. where在数据分组前进行过滤,而having在数据分组后进行过滤(因此where效率一般比having高);where是数据从磁盘读入内存时筛选,而having是在内存中筛选
  4. where是对数据库文件过滤(过滤条件是表中的字段),而having是对select中查询的字段进行过滤
  5. where子句中不能使用字段别名,而having子句中可以使用字段别名
  6. 多表关联查询时,where先筛选再联接,having先联接再筛选

2、having案例

初始化表(以student表为例):

create table if not exists student
(id int null,name varchar(50) null,age int null,sex varchar(2) null,score double null
)
comment '学生表';INSERT INTO student (id, name, age, sex, score) VALUES (1, '张三', 18, '男', 70);
INSERT INTO student (id, name, age, sex, score) VALUES (2, '李四', 17, '男', 60);
INSERT INTO student (id, name, age, sex, score) VALUES (3, '王五', 19, '男', 80);
INSERT INTO student (id, name, age, sex, score) VALUES (4, '赵六', 16, '男', 90);
INSERT INTO student (id, name, age, sex, score) VALUES (5, '七七', 16, '女', 95);
INSERT INTO student (id, name, age, sex, score) VALUES (6, '九九', 17, '女', 85);
INSERT INTO student (id, name, age, sex, score) VALUES (7, '十一', 18, '女', 80);
INSERT INTO student (id, name, age, sex, score) VALUES (8, '小明', 19, '男', 90);
INSERT INTO student (id, name, age, sex, score) VALUES (9, '小军', 17, '男', 55);
INSERT INTO student (id, name, age, sex, score) VALUES (10, '小雷', 19, '女', 60);

2.1、having单独使用

案例1:查询学生表中,成绩在80分以上的数据

select * from student having score >= 80

等同于:

select * from student where score >= 80

having使用的错误:

select id,name,age 
from student 
having score >= 80 -- 报错,score筛选条件没有出现在select中

where使用的错误:

selectid,name,age,score as fenshu
from student
where fenshu >= 80 -- 报错,where子句中不能使用字段别名

2.2、having与group by一起使用

案例2:求各个年龄段的平均分和年龄

select age,avg(score) from student group by age

如下:

 案例3:求学生平均分大于80分的年龄段及平均分

  • 这里只能使用having,对平均分进行筛选,使用where会报错
selectage,avg(score)
from student
group by age
having avg(score) > 80
-- 结果为16岁

案例4:查询学生年龄平均分大于80分男生的信息(姓名,男生的分数)

selectname,sex,age,score
from student
where sex = '男'
group by name,sex,age,score
having avg(score) > 80

结果:

http://www.tj-hxxt.cn/news/58568.html

相关文章:

  • 有没有专门做二手的网站百度站长之家工具
  • 郑州市建设厅网站网页推广怎么收取费用
  • python 网站开发杭州seo推广排名稳定
  • 免费的行情网站app代码百度推广介绍
  • 二手域名交易平台南京seo优化培训
  • 网站打开慢原因东莞百度快速排名优化
  • wordpress 豆瓣主题昆明百度推广优化
  • 昆明中小企业网站建设发稿服务
  • 重庆中小企业建站价格西昌seo快速排名
  • 微网站如何做微信支付宝支付网络服务器图片
  • 学做花蛤的网站bing搜索引擎入口官网
  • 网站建设公司做ppt吗网站优化推广是什么
  • 我想看b站直播间9幺seo 360
  • 网页客服软件惠州seo优化
  • 潘家园做网站的公司百度免费安装下载
  • 在阿里巴巴网站上怎么做贸易黑帽seo技术培训
  • wordpress后台登陆地址修改科学新概念seo外链
  • 网站制作计划百度搜索引擎的特点
  • it外包风险百度seo关键词排名优化软件
  • 中小型网站建设方案百度热门搜索排行榜
  • 做网站专业服务网站注册域名
  • anything popup wordpress 插件怎么使用seo关键词排名优化价格
  • 网站开发 东莞如何做一个自己的网站
  • 商城网站建设定制如何创建网页链接
  • 做网站的优势百度网站安全检测
  • 做网站需要流程郑州模板网站建设
  • 企业门户网站怎么做sem竞价培训班
  • seo网站推广怎样优化大师在哪里
  • 网站建站报价单seo推广主要做什么的
  • 泸州网站建设百度公司地址