天池训练营-Mysql-task03

本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql
练习题-第一部分
3.1

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

3.2
插入不了数据,因为原表(product)中设计表的时候限制了product_id,product_type,product_name字段不能为null,而视图中不包含product_id,product_type两个字段的内容,所以不能更新。

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

CREATE VIEW	AvgPriceByType
(product_id,product_name,product_type,sale_price,avg_sale_price) 
AS	SELECT 
product_id,
product_name,
product_type,
sale_price,
(SELECT AVG(sale_price) FROM product AS S2 
WHERE S1.product_type=S2.product_type
GROUP BY S1.product_type) AS avg_sale_price
FROM product AS S1;

3.5
错,当使用IS NULL或者IS NOT NULL是返回布尔值

3.6
第一条语句返回product表中purchase_price不为500,2800, 5000的商品的product_name, purchase_price
第二条语句在NOT IN判断语句中包含了NULL,所以会引发错误,因为NULL类型的特殊,对于NULL的判断只能使用IS和IS NOT两种方式。
3.7

SELECT COUNT((CASE WHEN sale_price<=1000 THEN product_id ELSE NULL END )) AS low_price,
			COUNT((CASE WHEN (sale_price BETWEEN 1001 AND 3000) THEN product_id ELSE NULL END)) AS mid_price,
			COUNT((CASE WHEN sale_price>=3001 THEN product_id ELSE NULL END)) AS high_price
			FROM product;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值