SQL学习(四)
1. SQL中的集合函数
名 称 |
参数类型 |
结果类型 |
描述 |
COUNT SUM AVG MAX MIN |
任意(可以是*) 数值型 数值型 字符型或数值型 字符型或数值型 |
数值型 数值型 数值型 同参数的内容一样 同参数的内容一样 |
出现次数 参数的和 参数的平均值 最大值 最小值 |
注: 在WHERE子句的比较操作中不能出现集合函数,除非它们是出现在子查询的选择列表中
例: select cid from customers
where discnt < (select max(discnt) from customers);
2. SQL中的分组
group by ... having ...通用形式
例:当某个代理商所订购的某样品产品的总量超过1000时,打印出所有满足条件的产品和代理商的ID及这个总量
select pid ,aid, sum(qty) as TOTAL from orders
group by pid,aid
having sum(qty)>1000;
执行过程:
- 首先对from子句中的所有表做笛卡尔积
- 接着删除不满足WHERE子句的行
- 然后根据GROUP BY子句对剩余的进行分组
- 最后求出选择列表中表达式的值
- HAVING子句紧跟在GROUP BY之后但先于对选择列表的表达式的计算
注: HAVING一般情况不会单独出现,一般和GROUP BY一起出现,如果省略了GROUP BY子句,那么HAVING子句将把
整个结果当做一个组来使用