OR的用法
项目一
移动平均值概念
练习:
使用 AND 和 BETWEEN 运算符的问题
1 编写一个查询,返回所有订单,其中 standard_qty 超过 1000,poster_qty 是 0,gloss_qty 也是 0。
2 使用客户表查找所有不以 'C' 开始但以 's' 结尾的公司名。
3 使用 web_events 表查找通过 organic 或 adwords 联系,并在 2016 年的任何时间开通帐户的个人全部信息,并按照从最新到最旧的顺序排列。
SELECT *
FROM orders
WHERE standard_qty >1000 AND poster_qty=0 AND gloss_qty=0;
SELECT *
FROM accounts
WHERE name NOT LIKE 'C%' AND name LIKE '%s';
SELECT *
FROM web_events
WHERE channel IN('organic','adwords') AND occurred_at >='2016-01-01'
ORDER BY occurred_at DESC;
或
SELECT *
FROM web_events
WHERE channel IN ('organic', 'adwords') AND occurred_at BETWEEN '2016-01-01' AND '2017-01-01'
ORDER BY occurred_at DESC;
使用 OR 运算符的问题
1 查找 订单 (orders) id 的列表,其中 gloss_qty 或 poster_qty 大于 4000。只在结果表中包含 id 字段。
2 编写一个查询,返回订单 (orders) 的列表,其中标准数量 (standard_qty)为零,光泽度 (gloss_qty) 或海报数量 (poster_qty)超过 1000。
3 查找以 'C' 或 'W' 开头的所有公司名 (company names),主要联系人 (primary contact) 包含 'ana' 或 'Ana',但不包含 'eana'。
SELECT id
FROM orders
WHERE gloss_qty>4000;
SELECT *
FROM orders
WHERE standard_qty=0 AND (gloss_qty>1000 OR poster_qty>1000);
SELECT *
FROM accounts
WHERE (name LIKE 'C%' OR name LIKE 'W%' )
AND (primary_poc LIKE '%ana%'
OR primary_poc LIKE '%Ana%')
AND primary_poc NOT LIKE '%eana%';
或
SELECT *
FROM accounts
WHERE (name LIKE 'C%' OR name LIKE 'W%' )
AND ((primary_poc LIKE '%ana%'
OR primary_poc LIKE '%Ana%')
AND primary_poc NOT LIKE '%eana%');
项目一回答
老师回复:
包含用于提取数据的SQL查询。
查询运行没有错误,并提取预期的数据。
TIP: 有时候我们使用精确搜索可能会失败,例如我想查询广州的数据但是数据库中可能没有广州的数据,或者拼写错误。这里假如我们使用精确匹配把每个可能的情况都去查询一下可能会比较浪费时间,那其实我们可以使用LIKE来进行模糊查询。
计算移动平均值,并在折线图中使用。
TIP: 考虑到你会在未来的学习中更多的接触到Python的使用,那么这里我们其实可以使用Python中的Pandas库中的rolling函数进行计算(你将会未来不久接触到Pandas的使用)