day18 SQL基础-子查询

1867. 最大数量高于平均水平的订单
在这里插入图片描述
您正在运行一个电子商务网站,该网站正在寻找不平衡的订单。不平衡订单的订单最大数量严格大于每个订单(包括订单本身)的平均数量。

订单的平均数量计算为(订单中所有产品的总数量)/(订单中不同产品的数量)。订单的最大数量是订单中任何单个产品的最高数量。

编写SQL查询以查找所有不平衡订单的订单id。(每个订单的最大值大于所有订单平均的最大值)

按任意顺序返回结果表。

查询结果格式如下例所示。
在这里插入图片描述
在这里插入图片描述

方法一:
select
		o.order_id
from
		OrdersDetails_1867 as o
group by
		o.order_id
having
		max(quantity) > (select avg(quantity) from OrdersDetails_1867 group by order_id)
方法二:
select
	order_id
from
		(select
				*,
				max(avg(quantity)) over()< max(quantity) as flag
		from
				OrdersDetails as o
		group by
				o.order_id) as t
where
	flag=1

1341. 电影评分
在这里插入图片描述
请你编写一组 SQL 查询:

  • 查找评论电影数量最多的用户名。如果出现平局,返回字典序较小的用户名。
  • 查找在 February 2020 平均评分最高 的电影名称。如果出现平局,返回字典序较小的电影名称。

字典序 ,即按字母在字典中出现顺序对字符串排序,字典序较小则意味着排序靠前。

查询结果格式如下例所示。
在这里插入图片描述
在这里插入图片描述

方法一:
(select
		u.name as results
from
		MovieRating as m left join Users as u on u.user_id = m.user_id
group by
		m.user_id
order by
		count(m.movie_id) desc,
        u.name
limit 1)

union

(select
		m2.title as results
from
	  MovieRating as m1 left join Movies as m2 on m1.movie_id=m2.movie_id
where
		date_format(created_at,"%Y%m")='202002'
group by
		m1.movie_id
order by
		avg(m1.rating) desc,
		m2.title
limit 1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值