Datawhale SQL 03

文章目录

3.1

CREATE VIEW ViewPractice5_1
AS 
 SELECT product_name,sale_price,regist_date
 FROM product
 WHERE sale_price >= 1000 AND regist_date = '2009-09-20'

(列名可省略)

结果如下:
在这里插入图片描述

3.2

会报错,因为修改视图同样也会修改原表,但表的某些字段不能为空,所以无法插入该条数据。在这里插入图片描述

3.3

标量子查询实现

SELECT product_id, product_name, product_type, sale_price, (SELECT AVG(sale_price) FROM product) AS sale_price_all
  FROM product

在这里插入图片描述

3.4

标量+关联子查询。这里关联子查询的作用为:使分组后仍然每行都对应一个平均值,而非每组对应一个。

 SELECT product_id, product_name, product_type, sale_price, 
 (SELECT AVG(sale_price) FROM product as p2 WHERE p1.product_type=p2.product_type GROUP BY product_type) AS avg_sale_price
  FROM product as p1
	

在这里插入图片描述

3.5

正确

3.6

1.取出了 purchase_price 不是 500、2800、5000 的商品,而不包含 purchase_price 为 NULL 的商品,这是因为谓词无法与 NULL 进行比较。
在这里插入图片描述
2. NOT IN 的参数中不能包含 NULL,否则,查询结果通常为空。
在这里插入图片描述

3.7

使用聚合函数+CASE 实现

SELECT SUM(CASE WHEN sale_price <= 1000 THEN 1 ELSE 0 END)               AS low_price,
       SUM(CASE WHEN sale_price BETWEEN 1001 AND 3000 THEN 1 ELSE 0 END) AS mid_price,
       SUM(CASE WHEN sale_price >= 3001 THEN 1 ELSE 0 END)               AS high_price
  FROM product;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值