SQL学习——基础语句(4)
前面感觉真的好乱,想哪,写哪。这里慢慢整理……
SQL Having 语句
还是前面的那两个表:
grade表:

student表:

我们需要查找这里的s_id下的gradeValue的和,这就要分组查询了 :select sum(gradeValue) as nums from grade group by s_id
这里分组查找完毕,但是需要筛选其中gradeValue的和大于100的。怎么筛选。一般都是用 where做子句来筛选,如 where 字段>80;
但是这里的where关键字无法与聚合函数一起使用,才产生了having。
eg: select sum(gradeValue) as nums from grade group by s_id having nums>100;
扯到这,提一下聚合函数: sum(),avg(),count(),max(),min() 等,这些函数呢,都是作用在多条数据上,产生的结果。这里呢就不能用where了。
SQL where group by ,having 区别?
having子句:
having 子句和group by 一起使用时,实现结果是先分组,然后在进行条件查找。SQL 语句编写顺序也一个样,having子句必须写在group by
子句后面。
where子句:
where子句和group by 一起使用时,是先执行 where语句的,然后在走分组语句。SQL编写,where必须在group by 前面。
看看图:
where +group by
select s_id ,gradeValue from grade where gradeValue>80 group by s_id

having +group by
select s_id ,gradeValue from grade group by s_id having gradeValue>80

通过2个图很容易看出,where在分组前就执行,效果没有达到预期,having在分组后,执行选择条件。
SQL学习——基础语句(4)的更多相关文章
- SQL学习——基础语句(1)
简序 1.SQL,指结构化查询语言,全称是 Structured Query Language. 2.SQL 让您可以访问和处理数据库. 3.SQL 是一种 ANSI(American Nationa ...
- SQL学习——基础语句(3)
先上数据表 student表 grade 表 SQL Union 语句 合并两个或多个select查询结果集. select s_id from student union select s_id ...
- SQL 常用基础语句
1.SQL SELECT 语句 语法:SELECT 列名称 FROM 表名称 2.SQL SELECT DISTINCT 语句 语法:SELECT DISTINCT 列名 ...
- SQL 数据库基础语句
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建备份 ...
- sql server 基础语句
创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database ...
- 9月18日,SQL学习基础1
数据库管理和应用 Oltp是小型的管理,OLAP是大型的管理 开发的内容如触发器 数据库管理系统(Database Management System,简称为DBMS)是位于用户与操作系统之间的一层数 ...
- 经典sql server基础语句不全
1.几个简单的基本的sql语句 选择: select * from table1 where 范围 插入: insert into table1(field1,field2) values(value ...
- SQL SERVER基础语句
1.增加字段名 ALTER TABLE [表名] ADD [列名] VARCHAR(20) NULL VARCHAR(20)是新加字段的类型和长度NUll:表示允许NULL值 3.修改字段类型 A ...
- sql 的基础语句
USE day15; -- 创建表CREATE TABLE teacher( id INT, NAME VARCHAR(20))-- 查看所有表SHOW TABLES; DESC student; D ...
随机推荐
- 改造PAXOS算法消灭活锁
分布式一致性协议的目的是确定一个不可变变量分布式存储的取值:通过对国内外一致性算法的研究成果和PAXOS协议活锁的分析,发现引入一个角色作为竞争时的代理提交者就可以解决活锁问题,从而在本文引入“代理提 ...
- Windows 10 常用软件推荐
QQ/TIM 大众的通讯工具,十多年之后的今天,依然是国内常驻用户第一的通讯工具 截图.远程桌面.视频会议.文件传送依旧是非常好用 TIM 算是轻聊版的升级版 微信 for Windows 近年新兴的 ...
- CorelDRAW最高立返500元!还剩30个名额!速抢!
由于上月CDR X7返利活动收获众多好评 本月官方继续将活动进行到底! 而此次活动不但有上月意犹未尽的CDR X7版,更增加了CDR X6.CDR 2017以及可望不可即的CDR 2018版,可谓是优 ...
- 使用jQuery和CSS自定义HTML5 Video 控件 简单适用
Html5 Video是现在html5最流行的功能之一,得到了大多数最新版本的浏览器支持.包括IE9,也是如此.不同的浏览器提供了不同的原生态浏览器视频空间.我们制作自定义视频控件为了在所有的浏览器中 ...
- FastFDS常用命令
1.启停fastdfs相关服务 #start fastdfs 启动服务 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart /usr/loca ...
- Zabbix4.0 Web管理界面中文乱码解决方法(转)
Zabbix安装好之后,监控图形页面出现字符集乱码 解决方法:1.复制本地电脑C:\Windows\Fonts\simkai.ttf(楷体)上传到zabbix服务器网站目录的fonts目录下 2.za ...
- Substring Uva 11468_记忆化搜索 + AC自动机
Code: #include<cstdio> #include<cstring> #include<queue> using namespace std; cons ...
- css超出不换行可滑动
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...
- js通过String取得对应全局Object的值
//假设有个全局对象Person var Person = { 'name' : 'alice' } //通过某种配置,获得了字符串形式的对象名 var thisPerson = 'Person'; ...
- Python 安装 numpy 以及 matplotlib 的过程
系统:ubuntu 16.04 版本:Python3.5 步骤: 安装 pip sudo apt install python3-pip 查看 pip list 是否有 numpy 以及 matplo ...