记录五道笔试题遇到的SQL题

四张SQL表如下,下面是问题与答案。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

题1:查询所有商品名称为“Java编程思想”且店铺名称为“天天出版社”的订单ID
SQL语句

select a.order_id
from t_order a
left join t_goods b
on a.goods_id = b.goods_id
and b.goods_name = 'Java编程思想'
left join t_store c on b.store_id = c.store_id
and c.store_name = '天天出版社';

题2:查询购买商品类型最多的三位用户的昵称,类型数量相同则按照昵称升序排序
SQL语句

select d.nick_name
from (
select distinct c.nick_name, b.goods_type
from t_order a
inner join t_goods b
on a.goods_id = b.goods_id
inner join t_user c
on a.user_id = c.user_id
) d
group by d.nick_name
order by count(d.goods_type) desc, d.nick_name asc
limit 3

题3:为所有价格超过100元的商品打五折,如果打折后小于100则置为100
SQL语句

update t_goods
set goods_price = (
case when goods_price > 100
and goods_price < 200
then 100
when goods_price > 200
then goods_price * 0.5
else goods_price
end);

题4:查询所有订单中商品总额(商品数量*商品价格)都大于500的用户昵称
第一种SQL语句

select distinct c.nick_name
from t_order a
left join t_goods b
on a.goods_id = b.goods_id
left join t_user c
on a.user_id = c.user_id
where a.goods_num * b.goods_price > 500;

第二种SQL语句

select distinct c.nick_name
from t_order a
inner join t_goods b
on a.goods_num * b.goods_price > 500
and a.goods_id = b.goods_id
left join t_user c
on a.user_id = c.user_id;

题5:哪些店铺的类型为“书籍”的商品平均价格高于系统中所有书籍商品的平均价格,查询这些店铺的名字,按平均价格高低排列
SQL语句

select distinct a.store_name
from t_store a
inner join t_goods b
on a.store_id = b.store_id
and b.goods_type = '书籍'
group by b.store_id
having avg(b.goods_price) > (
select avg(goods_price) as avg
from t_goods
where goods_type = '书籍')
order by avg(b.goods_price) asc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值