Mosh|SQL教程第四弹

SQL有很多自带的内聚的函数(MAX、MIN、AVG、SUM、COUNT)

一、聚合函数(Aggregate Functions)

这里的括号可以写列名也可以写表达式,下面是一个练习:

二、GROUP BY子句

统计2019-07-01以后每个客户的总销售额 

注意这个顺序:SELECT 、FROM、 WHERE 、GROUP BY、ORDER BY

练习:以日期为组,查看对应付款方式的总额

 三、HAVING子句

筛选,后面接条件,类似where,但是where在group by之前用,having在group by之后用 

练习:使用sql_store编写一个查询,得到坐标Virginia的顾客,且消费超过100美元 

四、ROLLUP运算符(用于汇总聚合值的列)

对单列进行ROLLUP可以看到最后面会出现一行汇总的数值

对多列进行ROLLUP可以看到会对每组进行汇总计算,且最后面会出现一行汇总的数值

练习:使用payments和payment_methods表,计算每种支付方式的价格总和,在计算他们的总和

五、子查询

在products中查找所有比生菜(id=3)还贵的产品,products在下表中:

链接: https://pan.baidu.com/s/1Z60nxnxbSTGU_I3QQQXlKQ?pwd=aay2 提取码: aay2

这里会先执行内查询,然后在执行外查询

插播:在插入数据时如果遇到重复键则更新现有数据。

INSERT INTO employees (id, name, salary)
VALUES (1, 'Jane Doe', 6000)
ON DUPLICATE KEY UPDATE
salary = 6000;

练习:查询所有收入在平均线以上的雇员

使用数据库:链接: https://pan.baidu.com/s/15SV538vy1lBXe09w8jllbA?pwd=ev59 提取码: ev59

六、IN运算符(注意in会返回列表,如果数值很大的时候会导致运行速率大大降低)

被订购产品的唯一列表

查找从未被订购过的产品

练习:在invoicing数据库,写一段查询来找到没有发票的客户

七、ALL运算符

查找所有金额大于167美元的发票

或者

八、ANY关键词

选择至少又两条发票的用户

九、相关子查询(子查询和外查询存在相关性)

练习:选择工资超过部门平均工资的员工

练习:获得比客户平均发票总额的发票数据

十、EXISTS运算符

练习:查找没有被订购的订单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值