1193. 每月交易 I
编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。
以 任意顺序 返回结果表。
查询结果格式如下所示。
select
DATE_FORMAT(t.trans_date, '%Y-%m') as month,
t.country,
count(t.country) as trans_count,
sum(if(t.state='approved', 1, 0)) as approved_count,
sum(t.amount) as trans_total_amount,
sum(if(t.state='approved', t.amount, 0)) as approved_total_amount
from
Transactions as t
group by
month(t.trans_date),
t.country
1633. 各赛事的用户注册率
写一条 SQL 语句,查询各赛事的用户注册百分率,保留两位小数。
返回的结果表按== percentage 的 降序 排序==,若相同则按 contest_id 的 升序 排序。
查询结果如下示例所示。
select
r.contest_id,
round(count(1) / (select count(1) from Users) * 100,2) as percentage
from
Register as r
left join
Users as u
on r.user_id=u.user_id
group by
r.contest_id
order by
percentage desc,
r.contest_id
1173. 即时食物配送 I
如果顾客期望的配送日期和下单日期相同,则该订单称为 「即时订单」,否则称为「计划订单」。
写一条 SQL 查询语句获取即时订单所占的百分比, 保留两位小数。
查询结果如下所示。
select
round(sum(if(d.order_date=d.customer_pref_delivery_date,1,0))/count(*) * 100 ,2) as immediate_percentage
from
Delivery as d
1211. 查询结果的质量和占比
将查询结果的质量 quality 定义为:
各查询结果的评分与其位置之间比率的平均值。
将劣质查询百分比 poor_query_percentage 为:
评分小于 3 的查询结果占全部查询结果的百分比。
编写一组 SQL 来查找每次查询的名称(query_name)、质量(quality) 和 劣质查询百分比(poor_query_percentage)。
质量(quality) 和劣质查询百分比(poor_query_percentage) 都应四舍五入到小数点后两位。
查询结果格式如下所示:
select
q.query_name,
round(sum(q.rating / q.position) / count(1) , 2 ) as quality,
round(sum(if(q.rating < 3 , 1 , 0)) / count(1) * 100 , 2 ) as poor_query_percentage
from
Queries as q
group by
q.query_name